【发布时间】:2015-05-14 09:06:33
【问题描述】:
尝试创建一个接收文本文件并逐行读取的程序。然后它找到每行上的两个整数并将它们加在一起。然后它将带有原始字符串的新行和总计输出到一个新的文本文件。我需要帮助添加两个整数,从每一行获取它们,然后将新行放入文本文件。
输入文本文件
good morning hello 34 127
ann 20 45
10 11
fun program and you find the same 90 120
news paper said that 56 11
how do you like 20 5
line number 90 34
输出首先看起来像:然后继续
good morning hello 161
代码:
int processTextFile(char * inputFileName, char * outputFileName)
{
FILE *fp = fopen(inputFileName, "r");//open file to to read
char buff[1024];
char *p, *p1;
int num;
while (fgets(buff, 1024, fp)!=NULL)
{
printf("%s\n", buff);
while(scanf(buff, "%*[^0-9]%d", &num)== 1)
printf("%d\n", num);
//fscanf(fp, "%s", buff);
}
return 0;
}
编辑!!!!::
所以现在我已经能够做到这一点。我将如何按产生的数字对其进行排序?例如:
Time is money 52
here I am 3
21
会按顺序输出到一个新的文本文件
here I am 3
21
Time is money 52
【问题讨论】:
-
建议:检查
fopen()是否成功 -
..并且,如果 fopen() 成功,请在完成后关闭文件。我将 strtok() 取出每个标记,然后尝试进行整数转换。
-
用新问题编辑。
-
将新问题写成新问题。编辑已经有答案的旧问题是让我们看不到问题的好方法。
-
回答新问题:不要在循环内打印,而是将数据添加到数组中。当循环完成对数组的排序并且仅在所有这些之后打印它。