C语言文件操作

把一个文件里的每一行数相加(每一行有2个数),放到另一个文件例子:---------原文件-------------1223458589622136......-----... 把一个文件里的每一行数相加(每一行有2个数),放到另一个文件

例子:

---------原文件-------------
12 23

45 85

89 62

21 36
......

-------------------------------

--------结果文件-----------
35
130
151
57
......

--------------------------------
展开
 我来答
xoaxa
推荐于2016-10-28 · TA获得超过8609个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3466万
展开全部

#include <stdio.h>

int main() {
int data1,data2,sum;
FILE *fin = fopen("data1.txt","rt");
FILE *fout = fopen("data2.txt","wt");
if(fin == NULL || 冲咐败fout == 散颤NULL) {
printf("无法打开数据文件。\n");
return 简羡1;
}
while(fscanf(fin,"%d%d",&data1,&data2) == 2) {
sum = data1 + data2;
fprintf(fout,"%d\n",sum);
printf("%d + %d = %d\n",data1,data2,sum);
}
fclose(fin);
fclose(fout);
return 0;
}
yhxxjsh
2014-08-01 · TA获得超过1479个赞
知道小有建树答主
回答量:366
采纳率:100%
帮助的人:286万
展开全部
程序如下:

#include <stdio.h>
#include <stdlib.h>
int main()

{
FILE *fp1,*fp2;
int n1,n2,sum;
fp1=fopen("in.txt","r"); /*假设读入文件是in.txt,写出文件为out.txt */
fp2=fopen("out.txt","w");
if(fp1==NULL)
{
printf("cannot open file\n");
exit(0);
}
if(fp2==NULL)
{
printf("cannot open file\n");
exit(0);
}
while(!feof(fp1)) /*判断是否到文件结尾*/
{
fscanf(fp1,"配迅羡%d %d",&n1,&n2); /培拍*读取一昌耐行*/
sum=n1+n2;
fprintf(fp2,"%d\n",sum); /*写出一行*/
}
fclose(fp1);
fclose(fp2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
A032V37
2014-08-01 · 超过61用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:143万
展开全部
从专业的角度来说,需要构造一个文法,然后读取,不过感觉对耐禅初学者太难了。
简单描述一下思路:
第一步分词,第二步语法分析,第三步存储。
分词:
从文件读入一个字符,如果不是空运裤格回车等空白字符,就再读入一个,直到读满一旁亩简个单词。

语法:
起始时为状态0。
状态0:如果读入的是学号(例如字母或数字开头的单词)跳至状态1;如果读入的是其他跳至状态2;如果文件结束正常结束。
状态1:如果读入的是姓名(例如全部是中文的单词),存储并跳至状态0;其他情况报错。
状态2:如果读入的是学号,存储并跳至状态0;其他情况报错。

存储,已经说过是链表就不再多说了。单词复制可以看看strdup和free的配合。
追问
你想多了
给我代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2014-08-01 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3257万
展开全部
#include <stdio.h>

int main(){
FILE *pf1,*pf2;
int a,b,c;
pf1=fopen("c:\\猛敏in.txt","r");
pf2=fopen("蠢洞c:\\out.txt","w");
if(!pf1 || !pf2){
printf("带知枯Error!\n");
return 1;
}
fscanf(pf1,"%d%d",&a,&b);
while(!feof(pf1)){
c=a+b;
fprintf(pf2,"%d\n",c);
fscanf(pf1,"%d%d",&a,&b);
}
fclose(pf1);
fclose(pf2);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式