2015-12-05 57 views
-1

我想爲我自己編寫一個程序,它將從.txt文件中添加數字。比方說,我的文件看起來像這樣:只讀C中的文件的一部分

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 

我遇到的問題是,我已經決定,我希望能夠從在時間的一列只添加號碼時遇到了問題搞清楚一個這樣做的方式。有沒有人有任何想法,例如,只將第二列的所有數字加起來?謝謝。

回答

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; 
} 
+0

工作就像一個魅力。簡單而簡單,正是我想要的。非常感激。我改變了'fp = stdin;'到'fp = fopen(「BP_1.txt」,「r」);'以適應我的目的。非常感謝。 – CerebralCortexan

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; 
}