int main(void) { char buffer[11]; fgets(buffer,11,stdin); fputs(buffer,stdout); return 0; }其中,puts 函數的原型如下所示:
int puts(const char *str);
我們知道,puts 函數主要用於向標準輸出裝置(螢幕)寫入字串併換行,即自動寫一個換行符('n')到標準輸出。理論上,該函數的作用與“printf("%sn",str);”語句相同。但是,puts 函數只能輸出字串,不能進行相關的格式變換。與此同時,它需要遇到 null('') 字元才停止輸出。因此,非字串或無 null('') 字元的字元陣列最好不要使用該函數列印,否則無法正常結束。如下面的程式碼所示:int main(void) { char str[] = {'H','E','L','L','O'}; puts(str); return 0; }在上面的範例程式碼中,因為字元陣列 str 在結尾處缺少一個 null('') 字元(也就是說它不是一個嚴格意義上的字串)。因此,在呼叫 puts 函數的時候,程式將不知道什麼時候停止輸出,從而導致輸出結果未定義。執行結果如下圖所示: