获取用户输入(通过回车键终止)

时间:2011-03-24 07:14:09

标签: c

我使用scanf来获取用户输入,但是如果按下回车键,光标将闪烁到下一行〜 我应该使用什么功能而不是scanf如果我希望程序将终止,如果用户只按Enter而不键入任何东西?

感谢

4 个答案:

答案 0 :(得分:2)

Scanf读取直到下一个令牌 - 它根本不关心换行符(只是将它们视为空格,如空格或制表符)。

相反,请使用类似fgets的行读取功能。

答案 1 :(得分:0)

您可以通过以下方式使用gets()函数:

<ion-fab vertical="center" horizontal="end" slot="fixed">
    <ion-fab-button>
      <ion-icon name="add"></ion-icon>
    </ion-fab-button>
  </ion-fab>
  

函数 char * gets(char * s)将一行从stdin读入指向的缓冲区   直到终止换行符或EOF(文件末尾)

注意gets()是不安全的。您现在无法先验将读取多少字符。这可能会导致一些安全问题,并最终导致崩溃。

答案 2 :(得分:-1)

我不同意:

char * x;
scanf("%s",x);
printf("Inserted line: %s\n",x);

将仅在x中存储直到返回键的字符。 我构建它并运行它并且它可以工作。

答案 3 :(得分:-1)

只需使用以下代码:

char ch;
printf("Enter Your Sentence \n");
while (1) 
{ 
     ch = getch();
     if ((int)ch == 13) 
         break;
     printf("%c", ch);
}