Вывод текста из файла на экран - C (СИ)
Формулировка задачи:
среда разработки BC.31.
ошибку не выдает, но и текст не читает из файла... что в коде не так? и как вывести на экран текст из файла?)
#include <stdio.h>
#include <conio.h>
main()
{
FILE * h
char n;
hi=fopen("C:\\test.txt","rt");
while(!feof(hi))
{
fscanf(hi,"%s",&n);
}
fclose(hi);
getch();
return(0);
}Решение задачи: «Вывод текста из файла на экран»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILENAME "input.txt"
#define SIZE 256
int main(void)
{
char buf[SIZE] = { 0 }, *text = NULL;
FILE* file = fopen(FILENAME, "rt");
size_t i = 0;
text = (char*)calloc(1, sizeof(char));
while (fgets(buf, SIZE, file) != NULL)
{
if (i % 2 == 0)
text = (char*)realloc(text, SIZE * (i + 2));
strcat(text, buf);
++i;
}
printf("%s", text);
fclose(file);
free(text);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками.
- Определение переменных: — buf — буфер для чтения данных из файла, — text — строка, в которую будут добавляться прочитанные данные, — file — указатель на файл, — i — счётчик, используемый в цикле.
- Выделение памяти под буфер и строку.
- Чтение данных из файла и добавление их в строку с помощью функции strcat.
- Реализация цикла, который будет выполняться до тех пор, пока не будет прочитана последняя строка файла.
- Проверка чётности счётчика i, чтобы не превысить размер выделенной памяти.
- Вывод содержимого строки text на экран.
- Закрытие файла и освобождение памяти, выделенной под строку.
- Возврат значения 0, что означает успешный конец работы программы.