Видове файлове

     О. Думата файл произлиза от английската file, която означава папка, досие, картотека, за съхранение на документи подредени в определен ред.
  Когато създаваме програми и извеждаме резултати (стойности, променливи, надписи и т.н.) на екрана, тези резултати се съхраняват временно в оперативната памет на компютъра. След като програмата приключи своето изпълнение информацията ни ще се изтрие от паметта. Езика за програмиране с++ дава възможност за дълготрайно съхранение на информацията във вид файлове: текстови, двоични и файлове с разширение doc.
  Текстовите файлове представляват от последователност от символи и редове, като всеки ред трябва да завършва със знак за нов ред “\n”.
      Пример:
                 char str[50]="Simple sentence... \n";
Информацията се съдържа в достъпен формат за четене от най-обикновен текстов редактор като например: notepad, wordpad, gedit, vim и др.
Файловете с разширение .doc e стандартът на Microsoft Word от 97 – 2003 г. Разширението .docx започва да се използва от MS Word 2007-365 г.
Във файловете с разширение .doc могат да се вграждат, изображения, таблици графики и др.
Съществува специален тип за работа с указатели - файлов указател.
      Декларация на файлов указател :
            FILE *fp;
fp - име на файловия указател;
След като е деклариран файловия указател с него можем да отваряме, четем, записваме текстови данни, чрез функцията fopen();
        FILE *fp;
        fp=fopen("Име на файл","режим за достъп");

Име на файл - създавате си име и задавате местоположението на файла;
Режим за достъп - латински букти, който съответстват за определен режим за достъп;
    fp=fopen("c:/test/data.txt","w");
Името на файла е data.txt и местоположението му. Обърнете внимание, как се достига до местоположението на файла и папката test трябва предварително да бъде създадена .
След приключване на работа с файла той трябва да бъде затворен с функцията fclose(fp) където :
    fp - името на файловия указател, който искаме да затворим;
       Ако функцията не може да създаде или прочете файл, връща
нулев файлов указател.В програмите се проверява указателя по този начин:
if (f!=NULL) означава,че файла е отворен правилно
{ }
else
{
cout<< "Unable to created\n"; възникване на грешка
}
      Макроса EOF или feof (f се пише за работа с файлове)
се използва проверка при достигане край на файл :
if (!feof(fp)) { действе }- ако не е достигнат края на файла,
извършвай някакви действия.
Обикновенно EOF e отрицателна стойност (-1).
Ето няколко примера:
   Пример 1 : Създаване на файл myfile.txt в папка test на локален диск c .
Записва се съдържанието на низ str символ по символ.
Папката test трябва предварително да сте я създали!
За по-любознателните в раздел "задачи" пример №5 съдържа програма на с++, която създава директория под DOS.

#include <iostream> //for Code Blocks
#include <stdio.h>
using namespace std;
int main()
{
FILE * f;
char str[50]="Simple sentence... \n";
int i;
f=fopen("c:/test/myfile.txt","a");
// f=fopen("test/myfile.txt","a");             for Eclipse/Linux
if (f!=NULL)
{
cout<< "File is created\n";
for (i=0;str[i];i++)
{fputc(str[i],f);
}
fclose(f);
return 0;
}
else
{
cout<< "Unable to created\n";
return 1;
}
}
Прочитането на файла myfile.txt за сега може да се осъществи чрез Notepad .

   Пример 2 : Прочитаме съдържанието (от пример 1) на файла myfile.txt от папка test на локален диск c .
Четем съдържанието на низ str символ по символ.

#include <iostream> //for Code Blocks
#include <stdio.h>
#include<string.h>
using namespace std;
int main ()
{
FILE * f;
char str;
f=fopen("c:/test/myfile.txt","r");
// f=fopen("test/myfile.txt","r");             // for Eclipse/Linux
if (f!=NULL)
{
cout<< "File is open for reading ...\n";
{
do
{
str=fgetc(f);
cout<< str;
}
while (!feof(f));
}
fclose(f);
return 0;
}
else
{
cout<< "Unable to reading\n";
return 1;
}
}

Благодаря за вниманието Ви !