我開始學習C現在,我試圖找出我怎麼會去當用戶點擊捕獲用戶的「輸入」按鍵「輸入」。我特別關注scanf和getc函數,但我不太清楚如何去做。當用戶點擊進入時,我想在等待/觀看時再執行一些操作,以便他再次進入......是否輸入了從控制檯進入的新線路角色?任何意見將不勝感激!捕獲用C
捕獲用C
回答
可以使用龜etc檢查ASCII值()。
while(condition) {
int c = fgetc(stdin);
if (c==10) {//Enter key is pressed
//your action
}
}
儘管這是一個好方法,但如果應用程序需要用戶輸入一些輸入,這將不起作用。 – noMAD 2012-04-06 23:06:15
@noMAD我明白你的觀點。但是,OP的工作就是解釋他需要這種方式才能工作。否則,我希望OP根據他的需要對其進行修改。 – 2012-04-06 23:12:24
如果你只需要輸入時用戶按下回車輸入您可以使用scanf
或getchar
。下面是從你進入到標準輸入(終端窗口)cplusplus.com
/* getchar example : typewriter */
#include <stdio.h>
int main()
{
char c;
puts ("Enter text. Include a dot ('.') in a sentence to exit:");
do {
c=getchar();
putchar (c);
} while (c != '.');
return 0;
}
此代碼打印的例子。
但是,如果你不想輸入(我知道這是真的不必要的和複雜的一個新的學習),你應該使用一個事件處理程序。
C語言是平臺無關的,不附帶自身的鍵盤交互。在編寫控制檯程序時,它是處理鍵盤輸入的控制檯,然後將其作爲標準輸入傳遞給您的程序。控制檯的輸入/輸出通常是緩衝的,所以你不能對一個按鍵作出反應,因爲控制檯只在每行之後將輸入發送到程序。
但是!如果你不要求你的控制檯應用程序與平臺無關,有一個非標準的庫<conio.h>
在一些Windows編譯器,有一個叫getche();
功能,這不正是你想要的東西 - 等待從控制檯的單一按鍵,返回被按下的char
。
printf("Hit RETURN to exit"\n");
fflush(stdout);
(void)getchar();
- 1. 捕獲使用C#
- 2. 捕獲使用C宏
- 3. Vb.net捕獲Ctrl + C
- 4. C#CryptographicException未被捕獲
- 5. 錯誤捕獲接近C#
- 6. C#日曆約會捕獲
- 7. Objective-C的錯誤捕獲
- 8. C#無法捕獲SerializationException
- 9. 如何捕獲變量(C#)
- 10. 捕獲控制-C在Python
- 11. c#捕獲ftp錯誤
- 12. 音頻捕獲在C#
- 13. C# - 捕獲網絡流量
- 14. C++編程嘗試捕獲
- 15. 在Java中捕獲Ctrl + C
- 16. C++ 11 Lambda通過捕獲
- 17. Visual C攝像頭捕獲
- 18. GLUT屏幕捕獲在C
- 19. C#利用SlimDX捕獲全屏遊戲
- 20. 使用C捕獲非活動窗口#
- 21. 在C#中使用BeginRead捕獲異常
- 22. 使用c#從線程捕獲熱鍵;
- 23. 使用C捕獲unix輸出#
- 24. C++ 11通過值捕獲的lambda捕獲在聲明點
- 25. 爲什麼C#試圖捕獲實際捕獲錯誤?
- 26. 用findall捕獲組?
- 27. 用NSDatePickerCell捕獲setDateValue
- 28. 無法捕獲按Ctrl + C在C#控制檯應用程序
- 29. 如何在Windows中用c/C++捕獲視頻流?
- 30. RabbitMQ C#捕獲異常問題
如果您收到來自用戶,例如'的scanf()'其阻塞某些輸入。因此,在用戶鍵入輸入並按下後,PC自動進入程序的下一行。你可以在那裏輸入你的代碼 – noMAD 2012-04-06 23:04:16