Как прочитать каждую строку из файла через перенаправление? - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь прочитать каждую строку из test.txt с помощью перенаправления.3 это режим.fopen () НЕ допускается.Какой аргумент я должен передать fgets () ???

Это для сервера Linux

// stdin:     ./main  3  < folder/test.txt

int main(int argc, char* argv[])
{
  char str[1000];
  FILE * fp;

  fgets(str, 1000, ???);
  return 0;
}

Ответы [ 2 ]

2 голосов
/ 27 апреля 2019

fopen () НЕ допускается

fopen() не допускается, поскольку вы получаете ввод от stdin.То есть, что делает эта командная строка

./main 3 < folder/test.txt

.

Он передает содержимое test.txt в вашу программу как stdin.Вы просто читаете из stdin, используя fgets().

1 голос
/ 27 апреля 2019

Для перенаправленного ввода передайте stdin в fgets().

// FILE * fp;  // not needed
if (fgets(str, 1000, stdin)) {
  // Success
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...