我需要完成与 .NET Console.ReadLine 函数提供的相同的行为。当用户按下回车键时,程序应该继续执行。
以下代码是不够的,因为它需要额外的输入:
printf ("Press Enter to continue");
scanf ("%s",str);
有什么建议么?
您可以使用 fgets(),如下所示:
#include <stdio.h>
fgets(buf, sizeof(buf), stdin);
使用函数 getchar()
试试这个:
printf ("Press Enter to continue");
scanf(“%[^\n]“,str);
getline
可能比getchar
大多数情况下要好。它允许您在“输入”之前捕获所有用户的输入,并且不受缓冲区溢出的影响。
char *buf=NULL;
printf("Press enter to continue: ");
getline(&buf,0,stdin);
// Use the input if you want to
free(buf); // Throw away the input
您可以将 do while 与 scanf 功能一起使用。
do{
scanf("%s",str1);
}while(str1[0] == '\0' || str1[0] == '\r' || str1[0] == '\n');