我正在閱讀一個文本文件(寫在UNIX或Linux機器上),應該在每行上有一個條目。當我用我的程序讀取它並將文件內容輸出到控制檯時,其他每個條目都有一個額外的換行符,並且每行重複兩次。下面是代碼;行讀取兩次,並與所有其他有額外的換行符
FILE* fullList;
char sline[21];
fullList = fopen("fullList", "r");
if(fullList == NULL)
exit(EXIT_FAILURE);
while(fgets(sline, sizeof(sline), fullList) != NULL)
{
puts(sline);
printf(sline);
}
fclose(fullList);
因此,如果輸入文件包含
apple
banana
orange
zucchini
cucumber
eggplant
程序會顯示爲
apple
apple
banana
banana
orange
orange
zucchini
zucchini
cucumber
cucumber
eggplant
eggplant
我不知道是什麼做的。我必須在使用前再清楚一點嗎?
注意,使用'的printf(SLINE)'是danerous如果'sline'含有任何''%符號,你是作爲崩潰的printf'很容易( )'嘗試訪問你沒有傳遞給它的參數。使用:'printf(「%s」,sline)'代替;這是安全的。 –