2016-02-23 3 views
0

Мне было предложено решить задачу программирования, и есть эта строка, которую я не понимаю, может кто-нибудь объяснить мне, как я могу передать тестовые примеры в программу, используя эту команду, я думаю, что я должен хранить его в какой-то файл, но я не уверен,Чтение тестовых примеров из файла

size_t getline(char **lineptr,size_t *n, FILE *stream); 

здесь полный код

#include <stdio.h> 
#include <stdlib.h> 
size_t getline(char **lineptr,size_t *n, FILE *stream); 
int main() 
{ 
    size_t maxLineLen=1024; 
    char *line = (char*)malloc(maxLineLen); 
    while(getline(&line, &maxLineLen,stdin)!= -1){ 
     printf("Hello, World!\n"); 
     printf("%s\n",line); 
    } 
} 
+0

Может быть, вы должны прочитать [GetLine справочную страницу] (http://linux.die.net/man/3/getline). Если у вас остались вопросы после прочтения, пожалуйста, уточните, что именно вы не понимаете оттуда. – kaylum

+0

Вы читали 'man getline'? – morxa

+0

@kaylum Я прошел, и это объясняет, как сдать тестовые примеры – user5324426

ответ

0

Кажется, вы спрашиваете, как запустить данный код и получить свой вклад в.

getline(&line, &maxLineLen,stdin) 

Это считывает строку с stdin. stdin является стандартным файловым потоком и открывается кодом запуска для вас. Без перенаправлением, чтение из stdin получит входной напечатал в терминал

Таким образом, чтобы получить вход в программу вы можете сделать одно из следующих действий:

  1. Запуск программы, а затем введите каждую строку ввода в Терминал.
  2. Запустите программу, а затем перенаправьте файл в программу. Пример:

    ./my_program < my_input.txt

+0

Я проверю, что – user5324426

0

вы дали имя файла?

Затем параметр FILE * должен быть открыт через fopen.

См manual for fopen

+0

да, поэтому я удивлен, что он работал только с кодом, который я представил на платформе вопроса – user5324426

+0

. Как и в других комментариях, они могли бы сказать, что чтение из файла было фактически передано через stdin. Поэтому, используя scanf(), было бы нормально читать этот «файл», который был перенаправлен. – Warden

+0

Код показывает, что он использует 'stdin'; который должен быть открыт при запуске программы. Непонятно, что это ответ на вопрос. –

Смежные вопросы