我想編寫一些從用戶(使用控制檯)獲取字符串的小程序,當最大輸入爲100個字符時,以及當用戶按下輸入時 - 它會將輸入複製到某個文件。 我想退出循環時,用戶輸入字符串「退出」如何循環用戶輸入並將其複製到文件,直到使用C輸入「退出」字符串?
例如: 「嗨,你好嗎?」 「bla bla」 「exit」 我只是不知道如何使它工作 - 我應該使用scanf嗎? getchar函數?與fgets?
char* buf ;
int i;
buf = (char*)calloc(100, sizeof(char));
while(1)
{
fgets(s, sizeof(s), stdin);
if (strcmp(s , "exit") == 0)
break;
else
...write to file...
}
我需要手動放置「\ 0」嗎?
謝謝!
謝謝!另一件事,我不太確定 - 如果我有一個數組,我想把這個字符串放在那裏 - 我現在應該拋出每封信並複製它:arr [i] = s [i]?直到我到'\ 0'? – user1386966 2013-04-27 16:07:13
@ user1386966是的,但不要手動執行此操作。 'strncpy(dest,buf,destsize);',但是請閱讀'strncpy()'的手冊頁,因爲如果你不檢查它的返回值是不安全的。 – 2013-04-27 16:08:35
「某些實現」是符合實現的超集,「在換行符(**被保留**)之後不會讀取其他字符」。如果有空格(根據size參數),'fgets'必須將新行存儲在緩衝區中。 – 2013-04-27 16:17:02