2015-09-17 3 views
-1

Итак, у меня есть текстовый файл, который я использую в том же каталоге, что и моя программа на C, и я использую MinGW в качестве компилятора. Это мой вклад:C - чтение из stdin с файлом?

./program "hello" > helloworld.txt 

В моей программе в главной функции, у меня есть:

#include <stdio.h> 
int main(int argc, char *argv[]) { 
char c; 
while ((c=getchar()) != EOF) { 
printf("test\n"); 
} 
return 0; 
} 

Ничто не печатает. Текстовый файл определенно имеет в нем строки. Я не знаю, что происходит. Это назначение исключает использование функции fopen() и все такое. Это только getchar() и stdin.

ответ

3

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

./program < helloworld.txt 

helloworld.txt:

this 
is a 
test 

Выход:

test 
test 
test 
test 
test 
test 
test 
test 
test 
test 
test 
test 
test 
test 
test 
+0

Sorry. Это было ошибкой. Правильный ввод имеет значение <<. Извините, что:/ – Laefica

+0

@Laefica Если вы используете '<', он должен работать. См. Мое редактирование. – dbush

+0

Да, это работает. Я тупой. Рад, что этот вопрос послужит ссылкой на тех, кто путает < with > в будущем, хотя xD – Laefica

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