我正在尝试为自己创建一个程序来添加.txt文件中的数字。让我们说我的文件看起来像这样:
0004 78 118
0014 79 118
0024 79 119
0034 77 119
0044 76 118
0054 76 117
0064 77 118
0074 75 119
0084 80 121
0094 81 122
我遇到的问题是我已经决定我希望能够一次仅添加其中一个列中的数字,并且无法找到一种方法。有没有人对我的方式有任何想法,例如,只添加第二列的所有数字?谢谢。
答案 0 :(得分:1)
这样的东西?
%*s
=读取一个由空格分隔的字符串并将其丢弃
#include <stdio.h>
int main(void) {
FILE* fp;
int sum = 0, data;
fp = stdin; /* or open the file you want to deal with */
while (fscanf(fp, "%*s%d%*s", &data) == 1) {
sum += data;
}
fclose(fp);
printf("sum = %d\n", sum);
return 0;
}
答案 1 :(得分:0)
创建一个帮助函数,选择您想要读取的列;
// 1: Success
// 0: Ill formatted data
// EOF: No more data
int read_column(int index, int *value) {
char buf[100];
if (fgets(buf, sizeof buf, stdin) == NULL) return EOF;
int d[3];
if (sscanf("%d%d%d", &d[0], &d[1], &d[2]) != 3) return 0;
*value = d[index];
return 1;
}