Re: Сі. Вивести вміст текстового файлу.
Надіюсь нічого не пропустив
// main.c
#include <stdio.h>
#include "rwfile.h"
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
int main(void)
{
int work;
string path=NEW_STRING(512); // /home/lazarus/name.txt
if (path==NULL)
{
printf("Error!");
exit(0);
}
do
{
printf("Введіть шлях до файла:");
scanf("%s",path);
openFile(path);
printf("\nЩоб відкрити інший документ введіть 1. Для виходу 0:");
scanf("%i",&work);
if (work==1)
{
system("reset");
}
else
{
system("reset");
break;
}
}
while(true);
FREE(path);
return 0;
}
// rwfile.c
#include <stdio.h>
#include <stdlib.h>
#include "rwfile.h"
int openFile(char path[])
{
string str=NEW_STRING(SIZE);
FILE *file;
if (str==NULL)
{
printf("Error!");
exit(0);
}
file=fopen(path,"r");
if (file==NULL)
{
printf("Помилка. Перевірте введену адресу на помилки.");
exit(0);
}
printf("#Початок\n");
while ((fgets(str,sizeof(str),file))!=NULL)
{
printf("%s",str);
}
printf("#Кінець\n");
fclose(file);
FREE (str);
return 0;
}
// rwfile.h
#ifndef RWFILE_H
#define RWFILE_H
#define SIZE 255*1024*1024
#define NEW_STRING(length) (char*)(malloc(sizeof(char)*(length)))
typedef char *string;
extern int openFile(char path[]);
#define FREE(x) (free(x))
#endif