Есть файл, в нём записана строка неизвестной длинны, как мне её записать в массив 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
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;
}
Комментариев нет:
Отправить комментарий