Stdin не работает, когда я запускаю программу - PullRequest
0 голосов
/ 30 января 2019

У меня есть следующий C-код в code.c

int main(int argc, char *argv[]) {
    FILE *openFile = NULL;
    openFile=stdin;
}

, но когда я компилирую и запускаю свой код с

gcc -g -o compiledcode code.c
./compiledcode

, терминал не запрашивает у меня ввод,Что случилось?

1 Ответ

0 голосов
/ 30 января 2019

Вы просто открываете stdin как файл, но не читаете его.Есть много разных способов получить ввод из stdin.

Функция getchar может использоваться для чтения одного символа из stdin.Используйте getc() или fgetc() для чтения из произвольного потока файлов.Пример:

int c = getchar();
printf("you entered %c\n", c);

Функция fgets может использоваться для чтения строки из файла.Пример:

char data[200];
fgets(data, sizeof(data), stdin); // we type stdin as file.
printf("you entered %s\n", data);

Функция scanf и ее семейство функций могут использоваться для чтения различных форматов из стандартного ввода.пример:

char data[200]; // size need be bigger or equal to input length
scanf("%199s", data);  // Protect from buffer overflow
printf("you entered %s\n", data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...