Я хочу прочитать поток символов из стандартного ввода, длина которого неизвестна. Я пытаюсь читать посимвольно как
#include <stdio.h>
int main(void)
{
char ch;
do
{
scanf("%c",&ch);
//do some comparison of ch
}while(ch!='');
return 0;
}
Помогите мне написать условие, чтобы я мог правильно читать ввод, не входя в бесконечный цикл
Пример ввода:
abcdefghijklmnop
getchar
). Если вы не хотите вводить ограничения по размеру, я считаю, что было бы лучше создать связанный список, выделить часть памяти, читать до тех пор, пока она не будет заполнена, а затем связать новую часть, пока файл не будет готов. - person Amadan   schedule 17.09.2015scanf
, вы можете проверить его возвращаемое значение - поскольку у него есть 1 совпадение, он вернет 1 в случае успеха и ‹1 в случае EOF или ошибки. Вы также можете использоватьfeof(stdin)
иferror(stdin)
- как вwhile ( ( 0 == feof(stdin) ) && (0 == ferror(stdin) ) )
- person Sigve Kolbeinson   schedule 17.09.2015