2017-10-07 57 views
-1

在執行此片段,無論我給的任何輸入,控制檯不會停止獲取輸入,是否有任何可能的方式來終止此片段與輸入到stdin。是否有任何外部輸入鍵,我可以給控制檯停止循環

#include<stdio.h> 
void main() 
{ 
char s1[100]; 
scanf("%[^EOF]s",s1); 
    or 
scanf("[^\0]s",s1); 
printf("%s",s1); 
} 
+2

可能的重複[你如何閱讀scanf直到EOF在C?](https://stackoverflow.com/questions/3764014/how-do-you-read-scanf-until-eof-in-c) – Annabelle

+0

只用'「%99s」'? 'scanf'函數將停止讀取空白字符,例如換行符。如果你想讀一整行,那麼也許使用['fgets'](http://en.cppreference.com/w/c/io/fgets)? –

+0

@Annabelle對不起,這個問題沒有答案 –

回答

0
scanf("%[^EOF]", s1); 

這意味着,任何字符將被視爲除EOF字符串的一部分。要終止字符串,您應該在Unix/Linux系統上輸入EOF字符,即Ctrl + D。

+0

對不起,沒有回答我的問題。我嘗試了Ctrl + D,這也是一個輸入,並得到這樣的控制檯打印^ D。 –

相關問題