這是我的問題: 我目前正在進行大學項目。我們假設做一個接收.pbm和.pgm文件作爲輸入的程序,然後我們假設以某種方式處理它們。但目前主要的是成功接收它們。 每個.pbm和.pgm文件的第一行是一個「幻數」。一組字符,如P1,P2(...)P6。 我們的目標是接收一個.pbm文件作爲輸入,保存第一行,動態分配一個字符串,使其與內容一樣大(例如P6 \ n),這樣我們就可以檢測幻數。這同樣適用於其他所有生產線。我們基本上只想要一種將每行保存到數組中的方法,使它們與內容一樣大。 我和我的項目合作伙伴都是初學者:文件處理,指針,動態內存和頭文件對我們來說依然很難。先謝謝你。逐行讀取文本文件並保存到數組(C語言)
---編輯---(忘了代碼,爲用戶指出)
int main(int argc, char const *argv[])
{
readFile(argv[1], "EI_2012-13_ascii.pbm");
return 0;
}
void readFile (const char* input_file, char* filename){
char *line_buffer, *line;
FILE *file_stream = NULL;
if(!check_extension(filename, ".pbm") &&
!check_extension(filename, ".pgm") && !check_extension(filename, ".ppm"))
ERROR(ERR_EXT, "Invalid file extension!\n");
file_stream = fopen(input_file, "r");
if (file_stream == NULL)
ERROR(ERR_EXT, "Couldn't open the file for reading");
line_buffer = malloc(sizeof(2));
fscanf(file_stream, "%s", line_buffer);
//line = strchr(line_buffer, '\n');
printf("%s\n", line_buffer);
printf("%d\n", sizeof(line_buffer));
fclose(file_stream);
}
有了這個代碼,我們試圖輸出字符串和它下面的大小。奇怪的是,我們繼續得到相同的輸出:4.我們需要malloc接收到一個合適的參數,直到'\ n'的行的大小。
http://stackoverflow.com/q/3501338/1175253 – Sam
上面是你的問題描述,你沒有提到你堅持實施它的地方。 –