在C中循环读取输入键

如何多次读取循环中的回车键?

我试过以下但没有结果。

char c; for (i=0; i<n; i++){ c = getchar (); fflushstdin (); if (c == '\n'){ //do something } } 

和fflushstdin:

 void fflushstdin (){ int c; while ((c = fgetc (stdin)) != EOF && c != '\n'); } 

如果我读取任何其他字符而不是输入键它完美,但使用回车键在一些迭代中我必须按输入2次。

谢谢。

编辑:我正在通过putty在Windows上执行程序,程序运行在虚拟盒上的虚拟化Linux薄膜上。

你为什么叫fflushstdin()? 如果fgetc()返回与\ n不同的内容,则该字符将被完全删除。

这应该工作:

 char prev = 0; while(1) { char c = getchar(); if(c == '\n' && prev == c) { // double return pressed! break; } prev = c; } 

尝试

 if (ch == 13) { //do something } 

enter的ASCII值为13,有时\ n不起作用。

你应该去:

 char c; for (i=0; i 

因为13Enter键的ASCII码。

你总是执行两次getchar (即使没有必要)。 尝试限制对fflushstdin调用:

 char c; for (i=0; i