我難以理解getchar()
。在下面的程序如預期getchar
工作:使用scanf時getchar不停止
#include <stdio.h>
int main()
{
printf("Type Enter to continue...");
getchar();
return 0;
}
然而,在下面的程序,getchar
不會造成延遲,程序結束:
#include <stdio.h>
int main()
{
char command[100];
scanf("%s", command);
printf("Type Enter to continue...");
getchar();
return 0;
}
我有以下weired解決辦法,其中工程,但我不明白爲什麼:
#include <stdio.h>
int main()
{
char command[100];
int i;
scanf("%s", command);
printf("Type Enter to continue...");
while (getchar() != '\n') {
i=0;
}
getchar();
return 0;
}
所以我的問題是:
1.什麼是scanf
在做什麼?爲什麼scanf
這樣做?
2.我的工作爲什麼在工作?
3.什麼是仿效以下Python代碼的好方法:
raw_input("Type Enter to continue")
+1我不知道當'stdin'仍然連接到控制檯時EOF是否可以嗎?毫無疑問,如果'stdin'被重定向到一個文件就會發生 - 使我的答案不夠健壯。 – Clifford
不太可能,但當然可以鍵入Ctrl-D(Windows上的Ctr-Z,iirc)來關閉流。感謝編輯,順便說一句。 –