我有一個文本文件,我想以逐行讀取,並把該行到一個數組。C:讀取文件到一個數組
的片段背後給了錯誤,而編譯:
FILE *f;
char line[LINE_SIZE];
char *lines;
int num_righe;
f = fopen("spese.dat", "r");
if(f == NULL) {
f = fopen("spese.dat", "w");
}
while(fgets(line, LINE_SIZE, f)) {
num_righe++;
lines = realloc(lines, (sizeof(char)*LINE_SIZE)*num_righe);
strcpy(lines[num_righe-1], line);
}
fclose(f);
的錯誤是:
spese.c:29: warning: assignment makes integer from pointer without a cast
spese.c:30: warning: incompatible implicit declaration of built-in function ‘strcpy’
spese.c:30: warning: passing argument 1 of ‘strcpy’ makes pointer from integer without a cast
任何幫助嗎? 感謝
你真的應該包含頭文件的#include到你的程序。很好,你還沒有做過-fno-builtin,在這種情況下,它不會警告你,程序會默默地被gcc編譯。 –
2009-05-04 19:41:28
我是持懷疑態度的,如果的fopen的值( 「spese.dat」, 「W」)(F!);部分。如果這種情況發生,f打開寫入,並且fgets()不能成功。另外,更多的錯誤檢查在整個過程中都是一件好事,特別是realloc(),在不釋放舊緩衝區的情況下,它會在失敗時返回NULL。 – RBerteig 2009-05-05 00:53:46
@Rerteig。我同意,錯誤檢查遠沒有出現。 – Tom 2009-05-05 02:05:34