fseek (указатель_на_ файл, величина_смещения, нач_точка);
величина_смещения – тип long (<0 или >0);
нач.точка – 0 – начало файла, 1 – текущая позиция, 2 – конец файла.
Рассмотрим пример:
//создание файла numbers.txt из N чисел
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define FNAME "c:\\numbers.txt\0" //имя файла
#define N 10 //количество выводимых в файл чисел
void main ()
{
char fname[20] = FNAME;
FILE *out; //объявление файловой переменной
int n;
puts ("\nFile:");
printf ("%s\n", fname); //выводится путь к файлу и его имя
puts ("Input: \n");
//открыть файл в режиме записи (w), в режиме чтения (r) //для дозаписи в конец файла режим добавления (а) if ((out = fopen (fname, "wt")) == NULL) //открытие текстового файла и //проверка его успешности
{
printf ("error zapis"); //если открытие файла проблемно
exit(1);
}
for (int i=0; i<N; i++) // цикл для организации вывода в файл
{
printf (":"); // приглашение к вводу очередного числа
scanf ("%i", &n); // ввод числа
fprintf (out, "%i", n); // вывод числа в файл
}
fclose (out); //закрытие файла
getch();
}
//считывание из файла txt1.txt //файл txt1.txt предварительно создан в текстовом редакторе
#include <stdio.h>
#include <conio.h>
#include <stdlib.h> //для exit
#define FNAME "c:\\txt1.txt\0" //имя файла
#define MAXLENGTH 80 //количество выводимых чисел
void main ()
{
char fname[20] = FNAME;
FILE *in; //объявление файловой переменной
int start, stop, count;
unsigned char ch;
char st[80], st1[80];
if ((in = fopen (fname, "rt")) == NULL) //открытие текстового файла для чтения
{ //и проверка его успешности
printf ("error zapis1");
exit(1);
}
while (!feof(in)) //вывод на экран содержимого файла
{ fscanf (in, "%s %s", st, st1); //считывание из файла в переменные st, st1
printf ("%s %s\n", st, st1); //вывод переменных на экран } //строка – только до «пробела»
if ((in = fopen (fname, "rt")) == NULL)
{ //повторно открываем файл для чтения
printf ("error zapis2");
exit(1);
}
while (!feof(in)) //обработка файла
{ fscanf (in, "%c", &ch); //считывание первого символа
if(ch != '\n'){
fscanf (in, "%d %d", &start, &stop);
if (start > stop || start <1 || stop > MAXLENGTH)
printf ("neverno granica\n");
else { count = 0;
while (++count < start)
putchar(' ');
while (count++ <=stop)
putchar(ch);
putchar ('\n');
}
}
}
fclose (in);
getch();
}
Файл txt1.txt, из которого проводится чтение, выглядит так:
-30 50
|30 50
|30 50
|30 50
|30 50
|30 50
=20 60
:31 49
:30 49
:29 49
:27 49
:25 49
:30 49
:30 49
/30 49
:35 48
:35 48
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.