创建两个文件,并将文件中对应的数字相加
2016-10-16 02:40
357 查看
手动创建两个文本文件text1.txt,text2.txt,要求编程创建text3.txt,实现text1.txt和text2.txt文件中除去首行和末尾,其余对应的数据相加,三个文本的内容如下
text1.txt
begin
10 11 12
20 21 22
30 31 32
end
text2.txt
begin
15 16 17
25 26 27
35 36 37
end
text3.txt
begin
25 27 29
45 47 49
65 67 69
end
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define BUFFERSIZE 1024
int main()
{
int fd1;
int fd2;
int fd3;
int len1;
int len2;
int i;
int read_bytes;
int write_bytes;
char buffer1[BUFFERSIZE];
char buffer2[BUFFERSIZE];
char buffer3[BUFFERSIZE];
char *ptr;
fd1 = open("text1.txt", O_RDONLY);
fd2 = open("text2.txt", O_RDONLY);
fd3 = open("text3.txt", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
len1 = read(fd1, buffer1, BUFFERSIZE);
len2 = read(fd2, buffer2, BUFFERSIZE);
while(read_bytes = read(fd1, buffer1, BUFFERSIZE))
{
if(-1 == read_bytes)
{
break;
}
}
buffer1[len1] = '\0';
while(read_bytes = read(fd2, buffer2, BUFFERSIZE))
{
if(-1 == read_bytes)
{
break;
}
}
buffer2[len2] = '\0';
strcpy(buffer3, buffer2);
i = 0;
while(buffer2[i] != '\0')
{
if((buffer2[i] >= '0') && (buffer2[i] <= '9'))
{
buffer3[i] = buffer1[i] + buffer2[i] - '0';
}
i++;
}
write(fd3, buffer3, strlen(buffer1));
printf("%s\n", buffer3);
close(fd1);
close(fd2);
close(fd3);
return 0;
}
text1.txt
begin
10 11 12
20 21 22
30 31 32
end
text2.txt
begin
15 16 17
25 26 27
35 36 37
end
text3.txt
begin
25 27 29
45 47 49
65 67 69
end
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#define BUFFERSIZE 1024
int main()
{
int fd1;
int fd2;
int fd3;
int len1;
int len2;
int i;
int read_bytes;
int write_bytes;
char buffer1[BUFFERSIZE];
char buffer2[BUFFERSIZE];
char buffer3[BUFFERSIZE];
char *ptr;
fd1 = open("text1.txt", O_RDONLY);
fd2 = open("text2.txt", O_RDONLY);
fd3 = open("text3.txt", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
len1 = read(fd1, buffer1, BUFFERSIZE);
len2 = read(fd2, buffer2, BUFFERSIZE);
while(read_bytes = read(fd1, buffer1, BUFFERSIZE))
{
if(-1 == read_bytes)
{
break;
}
}
buffer1[len1] = '\0';
while(read_bytes = read(fd2, buffer2, BUFFERSIZE))
{
if(-1 == read_bytes)
{
break;
}
}
buffer2[len2] = '\0';
strcpy(buffer3, buffer2);
i = 0;
while(buffer2[i] != '\0')
{
if((buffer2[i] >= '0') && (buffer2[i] <= '9'))
{
buffer3[i] = buffer1[i] + buffer2[i] - '0';
}
i++;
}
write(fd3, buffer3, strlen(buffer1));
printf("%s\n", buffer3);
close(fd1);
close(fd2);
close(fd3);
return 0;
}
相关文章推荐
- 手动创建两个文本文件text1.txt,text2.txt,要求编程创建text3.txt,实现text1.txt和text2.txt文件中除去首行和末尾,其余对应的数据相加,三个文本的内容如下
- 手动创建两个文本文件text1.txt,text2.txt,要求编程创建text3.txt,实现text1.txt和text2.txt文件中除去首行和末尾对应的数据相加
- js中,实现两个数字相加
- [LeetCode] 2. Add Two Numbers 两个数字相加
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一
- 链表——将两个链表上的数字相加(考虑进位)并将和放入新链表
- 面试题七 C/C++ 两个字符串由数字组成的相加,最大不超过32bit整形的系统函数--程序员面试题
- 算法 - 两个链表中数字相加
- 泛型:两个数字相加
- [LeetCode] Add Two Numbers II 两个数字相加之二
- stat用法:获取文件对应权限的数字
- js中,实现两个数字相加
- 经典算法学习——快速找出数组中两个数字,相加等于某特定值
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一
- 窗口作业1 作业: 1.创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存
- python计算输入的两个数字,try...except...判断是否输入的是数字,如果是则相加
- 程序员面试金典——解题总结: 9.18高难度题 18.1编写一个函数,将两个数字相加。不得使用+或其他算术运算符。
- Java判断两个路径对应的文件是否相同
- 80x86汇编编程:键入两个8进制数字,相加后以16进制输出