Страницы

Поиск по вопросам

среда, 31 октября 2018 г.

Считать строку неизвестной длины из файла

Есть файл, в нём записана строка неизвестной длинны, как мне её записать в массив char? Я что-то пытался, но ничего не вышло.
Вот убрал лишнее из кода, насчет двойного указателя не уверен.
char **str; //вот сюда надо записать из файла char ch; FILE *fp;
if ((fp = fopen("test.txt","r"))==NULL) { printf("File not found.
"); }
do { ch = getc(fp);//read
//тут видимо должен быть чудо-код
} while(ch!=EOF);
fclose(fp);


Ответ

Примерно так #include #include
int main() { FILE* f = fopen("file.txt", "r"); unsigned int N = 10, delta=10, i = 0; char* buf = (char*) malloc (sizeof(char)*N); while ((buf [i] = fgetc(f)) != EOF ) { if (++i >= N) { N += delta; buf = (char*) realloc (buf, sizeof(char)*N); } } fclose(f); buf[i] = '\0'; puts (buf); free (buf); return 0; }

Комментариев нет:

Отправить комментарий