-1
在執行此片段,無論我給的任何輸入,控制檯不會停止獲取輸入,是否有任何可能的方式來終止此片段與輸入到stdin。是否有任何外部輸入鍵,我可以給控制檯停止循環
#include<stdio.h>
void main()
{
char s1[100];
scanf("%[^EOF]s",s1);
or
scanf("[^\0]s",s1);
printf("%s",s1);
}
在執行此片段,無論我給的任何輸入,控制檯不會停止獲取輸入,是否有任何可能的方式來終止此片段與輸入到stdin。是否有任何外部輸入鍵,我可以給控制檯停止循環
#include<stdio.h>
void main()
{
char s1[100];
scanf("%[^EOF]s",s1);
or
scanf("[^\0]s",s1);
printf("%s",s1);
}
scanf("%[^EOF]", s1);
這意味着,任何字符將被視爲除EOF字符串的一部分。要終止字符串,您應該在Unix/Linux系統上輸入EOF字符,即Ctrl + D。
對不起,沒有回答我的問題。我嘗試了Ctrl + D,這也是一個輸入,並得到這樣的控制檯打印^ D。 –
可能的重複[你如何閱讀scanf直到EOF在C?](https://stackoverflow.com/questions/3764014/how-do-you-read-scanf-until-eof-in-c) – Annabelle
只用'「%99s」'? 'scanf'函數將停止讀取空白字符,例如換行符。如果你想讀一整行,那麼也許使用['fgets'](http://en.cppreference.com/w/c/io/fgets)? –
@Annabelle對不起,這個問題沒有答案 –