我使用scanf来获取用户输入,但如果我按回车键,光标将闪烁到下一行~如果我想要程序终止,我应该使用什么函数来代替scanf,如果用户只按回车键而不按任何键?
谢谢
发布于 2011-03-24 15:21:07
Scanf一直读到下一个标记--它根本不关心换行符(只将它们视为空格,如空格或制表符)。
相反,可以使用像fgets这样的行读取函数。
发布于 2019-12-16 02:08:21
您可以这样使用get()函数:
#include <stdio.h>
#define MAX_INPUT_CHAR 100
int main( ) {
char str[MAX_INPUT_CHAR ];
printf( "Enter a value :");
gets( str );
return 0;
}函数char *get(char *s)将标准输入中的一行读入s指向的缓冲区,直到换行符终止或EOF (文件结束)
注意get()是不安全的。你现在不能预先知道它会读多少字符。这可能会导致一些安全问题,并最终崩溃。
发布于 2019-12-16 00:39:32
只需使用以下代码:
char ch;
printf("Enter Your Sentence \n");
while (1)
{
ch = getch();
if ((int)ch == 13)
break;
printf("%c", ch);
}https://stackoverflow.com/questions/5415885
复制相似问题