Как распечатать результат на стандартный вывод? - PullRequest
0 голосов
/ 14 октября 2010
            char line[MAXBUF];
            char *result;

            while((result = fgets(line, MAXBUF, fp)) != NULL) {
                printf(result); 
            }

Следующий код не работает полностью. Кто-нибудь знает, как распечатать результат ?? MAXBUF определен как 1024, а fp - это просто указатель на файл. В этом назначении я предполагаю прочитать файл и распечатать выводимый файл на стандартный вывод. Есть идеи?

В строке printf (результат) я получаю эту ошибку «предупреждение: формат не строковый литерал и нет аргументов формата»

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Вот что вы хотите сделать:

char line[MAXBUF];
char *result;

while((result = fgets(line, MAXBUF, fp)) != NULL) {
      printf("%s", line);
}

fgets вводит строку (сохраняя символ новой строки). Вы проверяете результат, который является правильным. Теоретически, результат должен совпадать. У printf нет '\ n', потому что символ новой строки сохраняется в fgets (см. Man-страницу).

0 голосов
/ 14 октября 2010

посмотрите на спецификацию fgets, лучше:

while( fgets(line, MAXBUF, fp)!= NULL) {
                puts(line); 
            }

или

while( fgets(line, MAXBUF, fp) ) {
                puts(line); 
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...