C语言从txt文件中读出数据进行相加输出结果

如数据
第一行 5
第二行 3
第三行 3
。。。。。
把每行数据读出,然后相加,希望指教下,最好给出一一个程序,我自己编了个发现加的结果不对,是把ASCALL码的数值相加了吗?怎么转换,我不太清楚

第1个回答  2011-01-18
#include <stdio.h>
int main(void)
{
FILE * fp;
int temp,sum=0;
if((fp=fopen("input.txt","r"))==NULL)
{
printf("open file error");
return 1;
}
while(!feof(fp))
{
fscanf(fp,"%d",&temp);
sum+=temp;
}
printf("sum=%d",sum);
fclose(fp);
return 0;
}
注意文件后面不要多空行本回答被提问者采纳
第2个回答  2011-01-19
#include "stdio.h"
void main()
{
FILE* fin = NULL;//输入文件
FILE* fout = NULL;//输出文件
char c;
fin = fopen("readme.txt", "r");
if(fin == NULL)
{
printf("输入文件打开错误!\n");
return;
}
fout = fopen("out.txt", "w");
if(fout == NULL)
{
printf("输出文件打开错误!\n");
return;
}
c = fgetc(fin);
while(c != EOF)
{
fputc(c, fout);
printf("%c", c);//对于这句来说,如果是非中文,输出到屏幕会有问题的!
c = fgetc(fin);
}
fclose(fin);
fclose(fout);
printf("输入输出结束!\n");
}
你自己试试,应该可以的
第3个回答  2011-01-18
//把input.txt改成你的文件名
#include <iostream>
using namespace std;

char buffer[1024];

int main()
{
FILE* fp=fopen("input.txt", "r");
if (NULL == fp) return -1;
int sum=0;
int num=0;
while(fgets(buffer, 1024, fp))
{
sscanf(buffer, "%d", &num);
sum+=num;
}
cout<<sum<<endl;
return 0;
}
第4个回答  2011-01-18
#include<stdio.h>
int main()
{
int i,t=0;
FILE * fp;
fp= fopen("xxx.txt","r");//xxx.txt是文件名
while(feof(fp)==0)
{
if(fscanf(fp,"%d",&i)==1)
t+=i;
getc(fp);
}
printf("%d\n",t);
fclose(fp);

}
第5个回答  2011-01-18
#include <stdio.h>
#include <string.h>
#define size 100

void main(){
int x[size],i,y[size],s;
FILE *fp;
fp=fopen("zou.txt","w");
printf("input 4 data:\n");
for (i=0;i<4;i++)
{
printf("input %d : ",i+1);
scanf("%d",&x[i]);
}
for (i=0;i<4;i++)
{
fprintf(fp,"%d ",x[i]);
}
fclose(fp);
//output from in.txt
fp=fopen("zou.txt","r");
for (i=0;i<4;i++)
{
fscanf(fp,"%d ",&y[i]);
}
fclose(fp);
s=0;
printf("out:\n");
for (i=0;i<4;i++)
{
printf("%d ",y[i]);
s+=y[i];
}
printf("\nsum = %d \n",s);
}
相似回答