#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF_SIZE 1024
int main()
{
char buffer[BUF_SIZE];
int contentSize = 1;
char* content = (char*)malloc(sizeof(char) * BUF_SIZE);
content[0] = '\0';
while(fgets(buffer, BUF_SIZE, stdin))
{
contentSize = contentSize + strlen(buffer);
content = (char*)realloc(content, contentSize);
strcat(content, buffer);
}
return 0;
}
im пытается прочитать во всем, введенном пользователем (даже пробельные символы), и я довольно близок к тому, чтобы заставить его работать, но цикл никогда не заканчивается. fgets()
просто продолжает просить больше ввода, как мне это исправить.Почему цикл fgets() никогда не заканчивается?
Как вы сказали в комментарии ниже, вы используете Windows (эта информация стоит поставить в вопрос :-). - Вы попробовали клавишу «F6» для EOF? Сравните http://stackoverflow.com/questions/10589637/having-troubles-with-eof-on-windows-7. –
да, что сработало! интересно, спасибо – user2756746
Возможный дубликат [Проблемы с EOF в Windows 7] (http://stackoverflow.com/questions/10589637/having-troubles-with-eof-on-windows-7) –