我需要完成与.NET Console.ReadLine函数相同的行为。当用户按下回车键时,程序执行应该继续。
以下代码是不够的,因为它需要额外的输入:
printf ("Press Enter to continue");
scanf ("%s",str);
有什么建议吗?
答案 0 :(得分:5)
您可以使用fgets(),如下所示:
#include <stdio.h>
fgets(buf, sizeof(buf), stdin);
答案 1 :(得分:2)
使用函数getchar()
答案 2 :(得分:2)
试试这个:
printf ("Press Enter to continue");
scanf(“%[^\n]“,str);
答案 3 :(得分:0)
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
答案 4 :(得分:0)
您可以在使用scanf函数时使用do。
do{
scanf("%s",str1);
}while(str1[0] == '\0' || str1[0] == '\r' || str1[0] == '\n');