Работа с файлами в си ввод и вывод в файл в си

8 марта 2019 - Администратор

Работа с файлами в си

В этой статье мы узнаем, как считывать данные из файлов и записывать информацию в файлы в программах си. Файлы в си используются для того, чтобы сохранять результат работы программы си и  использовать его при новом запуске программы . Например можно сохранять результаты вычислений , статистику игр.
Чтобы работать с файлами в си необходимо подключить  библиотеку stdio.h
#include <stdio.h>
Чтобы работать с файлом в си необходимо задать  указатель на файл по образцу
FILE *имя указателя на файл;
Например  
FILE *fin; 
Задает  указатель  fin на файл
Дальше необходимо  открыть файл и привязать его к файловому указателю. Для открытия файла в си на чтение  используется команда
Имя указателя на файл= fopen("путь к файлу", "r");
Например следующая команда
fin = fopen("C:\\Users\\user\\Desktop\\data.txt", "r");
откроет файл  data.txt, находящийся на рабочем столе  по пути C:\\Users\\user\\Desktop Чтобы узнать путь к файлу можно выбрать файл мышью нажать на правую кнопку мыши и выбрать свойства файла. В разделе Расположение будет указан путь к файлу. Обратите внимание , что в си путь указывается с помощью двух слешей. 
После работы с файлом в си , необходимо его закрыть с помощью команды
fclose(имя указателя на файл)

Считывание информации из текстового файла в Си

Для считывания информации из файла в си используется команда fscanf(). Эта команда аналогична  команде ввода информации с клавиватуры в си scanf() только первый параметр это указатель на файл
fscanf(указатель на файл,"%формат ввода данных1% форматввода данных2…",&перменная1,&переменная2…);
Например команда 
fscanf(fin,"%d%d%d",&a,&b,&c);
считает из файла, который привязан к указателю на файл fin строку из трех целочисленных переменных
Разберем пример программы, которая считывает из текстового файла data.txt в которые записаны три столбца цифр информацию и записывает ее в массивы. Для каждого столбца информации свой массив. Подробно о работе  с массивами в Си.
#include <stdio.h>
#include <conio.h>
main()
{     int a[10];
      int b[10];
      int c[10];
      int i;  
// определяем указатель на файл
     FILE *fin;
// отркываем файл на чтение
      fin = fopen("C:\\Users\\user\\Desktop\\data.txt", "r");
// построчное считывание из файла
     for (i=0;i<3;i++)
     {
// считывание строки из  трех значений файла и запись в массивы
         fscanf(fin,"%d%d%d",&a[i],&b[i],&c[i]);        
     }
// вывод массивов на экран
 for (i=0;i<3;i++)
     {
         printf("%d %d %d ",a[i],b[i],c[i]);           
     }   
     getch();
// закрытие файла
     fclose(fin);
}

Запись информации в текстовый  файл в Си

Для записи данных в файл в Си, необходимо открыть файл в режиме записи
Имя указателя на файл= fopen("путь к файлу", "w");
Для записи в строку текстового файла используется команда fprnitf(), которая аналогична команде printf() вывод на экран в си только первый параметр это указатель на файл
fprintf (имя указателя на файл,”%формат ввода”, переменные);
Например  запись в файл out.txt  значение переменной а
a=10;
fout = fopen("C:\\Users\\user\\Desktop\\out.txt", "w");
fprintf (fout,”%d”, a);

Пример программы на си которая запрашивает два числа и записывает в файл out.txt оба эти числа и их сумму

#include <stdio.h>
#include <conio.h>

main()
{    int a;
     int b;
     int c;
     FILE *fout;
     fout = fopen("C:\\Users\\user\\Desktop\\out.txt", "w");
     printf ("введите первое число  ");
     scanf("%d", &a);
     printf ("введите второе число ");
     scanf("%d", &b);
     c=a+b;
     fprintf(fout,"%d %d %d",a,b,c);
     getch();
     fclose(fout);
}

Вернуться к содержанию

Комментарии (0)

Нет комментариев. Ваш будет первым!