C - эквивалент .NET Console.ReadLine - PullRequest
2 голосов
/ 18 марта 2010

Мне нужно выполнить то же поведение, которое обеспечивает функция .NET Console.ReadLine. Выполнение программы должно продолжаться, когда пользователь нажимает клавишу ввода.

Следующий код недостаточен, так как требует дополнительного ввода:

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

Есть предложения?

Ответы [ 5 ]

5 голосов
/ 18 марта 2010

Вы можете использовать fgets () примерно так:

#include <stdio.h>

fgets(buf, sizeof(buf), stdin);
2 голосов
/ 18 марта 2010

попробуйте это:

printf ("Press Enter to continue"); 
scanf(“%[^\n]“,str);
2 голосов
/ 18 марта 2010

Используйте функцию getchar ()

0 голосов
/ 09 января 2017

Вы можете использовать do с функцией scanf.

do{
    scanf("%s",str1);
}while(str1[0] == '\0' || str1[0] == '\r' || str1[0] == '\n');
0 голосов
/ 18 марта 2010

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
...