C - 相当于.NET Console.ReadLine

时间:2010-03-18 19:37:46

标签: c console scanf enter

我需要完成与.NET Console.ReadLine函数相同的行为。当用户按下回车键时,程序执行应该继续。

以下代码是不够的,因为它需要额外的输入:

printf ("Press Enter to continue");
scanf ("%s",str); 

有什么建议吗?

5 个答案:

答案 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');