int fgetc (FILE * stream);
· чтение строки символов из заданного потока. Чтение символов из потока происходит до тех пор, пока не встретится символ новой строки (‘\n’) или читается не более (n-1) символов. Прочитанная строка записывается в буфер, начиная с ячейки, адресуемой аргументом char* S. К концу строки добавляется символ ‘\0’. В случае oшибки возвращается 0.
char* fgets (char* s, int n, FILE* stream);
· запись символа в поток. В случае ошибки возвращается 0.
int fputс ( int c, FILE* stream);
· запись строки в поток. В случае успеха возвращается длина строки, в случае ошибки EOF.
int fputs (const char* s, FILE* stream);
# include <stdio.h>
# include <stdlib.h>
void Error(const char* message)
{
printf ( "\n Error:%S\n", message );
exit (1);
}
void main ( )
{
FILE *fp; char c; char* filename;
printf ( "File name?" );
puts(filename);
fp = fopen(filename, "r");
if (!fp) Error ("нельзя открыть файл”);
while ( (c = fgetc (fp))! = EOF ) putchar(с);
fclose (fp);
}
· форматированный вывод в видеопамять выполняется функцией cprintf(). Эта функция не распознает управляющие коды типа “\n”. Перед вызовом этой функции следует разместить курсор в нужном месте экрана.
· форматированный вывод в файловый поток выполняется функцией fprintf().
fpintf( fp, “%8.2f”, d);
· форматированный ввод из файлового потока выполняется функцией fscanf().
/* форматированный ввод из файлового потока в массив символов */
# include <stdio.h>
# include <stdlib.h>
void main( )
{
FILE* inpf; int i, count; int * array;
inpf = fopen ("TEST.DAT","r");
if (! inp f)
{
puts ("нельзя открыть TEST.DAT");
exit(1);
};
fscanf (inpf, "%d", &count); // счетчик значений
if(count<=0)
{
printf("Ошибочное значение %d\n", count); exit(1);
}
// создать массив и прочитать значения из файла
array = new int[count];
for (i = 0; i <count; i++) fscanf(inpf, "%d", &array[i]);
fclose (inpf);
for ( i=0; i < count; i++ )
printf("array [%2d]==%d\n", i, array[i]);
delete [ ] array;
}
Файл рассматривается как последовательность байтов. Существует два основных способа записи и чтения двоичных файлов: последовательный и произвольный.
· чтение данных из потока
int fread(void* ptr, int size, int n, FILE* stream);
ptr – указатель на буфер,
size – размер в байтах одного считываемого элемента,
n – количество считываемых элементов.
Файловый указатель располагается непосредственно за последним прочитанным байтом. Эта функция возвращает количество прочитанных элементов или 0 при попытки чтения за концом файла.
· запись данных в поток
int fwrite (void* ptr, int size, int n, FILE* stream);
# include <stdio.h>
# include <stdlib.h>
void main ( )
{
FILE * outf; FILE * inpf; int i, value;
outf = fopen ("INT.DAT", "wb");
if (!outf) { puts ("ошибка") ; exit (1); }
for(i=0; i<100; i++) fwrite(&i, sizeof(int), 1, outf);
fclose(outf);
inpf = fopen ("INT.DAT",”rb”);
for(i=0; i<100; i++)
{
fread(&value, sizeof(int), 1, inpf);
printf ("%8d", value);
}
fclose (inpf);
}
· установить новую позицию указателя файла
int fseek(FILE* stream, long offset, int mode);
Функция возвращает 0 в случае успеха, в случае ошибки – ненулевое значение.
offset– число байтов, на которое необходимо переместить файловый указатель в направлении, указанном mode.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.