我還在學習,所以如果我正在做點什麼真的是效率低下,告訴我。否則,我更關心爲什麼這不起作用。用C寫一個待辦事項列表。有很多問題
除非我使用引文,否則我無法寫出多個單詞。有沒有一種方法可以讓我在寫入多個單詞時不必添加引號?
#include<stdio.h>
#include<stdlib.h>
main() {
char str[BUFSIZ];
FILE *f;
f = fopen(".todo","a");
printf("\n\nTODO list\n\n");
printf("~ ");
scanf("%s", str);
fprintf(f,str);
fprintf(f,"\n");
fclose(f);
}
我確實做了一個循環,所以我可以寫多個東西。這是我做的:
for(;;) {
printf("~ ");
scanf("%s", str);
if(str == "break") {
fclose(f);
printf("\n");
exit(1);
}
fprintf(f,str);
}
但是,如果我輸入「break」,它不會退出。它不會寫入.todo(我認爲這是因爲fclose沒有運行)如果不是那樣,我該如何讓它退出?
如果您正在讀取字符串,不要使用scanf從鍵盤讀取,而是使用fgets代替(例如char buffer [128]; fgets(buffer,sizeof(buffer),stdin)),只刪除最後一個字符(\ n) –
Don不會將非文字字符串傳遞給printf函數族的格式參數。 –