c语言文件操作:FOR 1.4题(知识储备)

本文详细介绍了C语言中文件操作的基础知识,包括文件指针的使用、文件打开方式及其含义,以及fopen、fclose等核心文件操作函数的使用方法。同时,文章还提供了示例代码帮助理解。

文件指针的运用:

FILE *<文件名>

EG:FILE *FP

打开函数:fopen   

void test()
{
   FILE *fp;
   fp=fopen("D:/test.doc","r");
}


文件使用方式        意 义
“rt”      只读打开一个文本文件,只允许读数据 
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+”      读写打开一个二进制文件,允许读和写 
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:
1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写

如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:

void test()
{
   FILE *fp;
if((fp=fopen("D:/test.doc","rt+"))==NULL)//如果出错,fopen值返回为null
{
printf("nerror on open D:/test.doc");
getchar();
exit(1);
/*
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值*/
}
}//常用这段语句打开文件

fclose:

 fclose(文件指针); 

EG:

fclose(fp); 

//正常完成关闭文件操作时,fclose函数返回值为0。如返回非零值则表示有错误发生。


fgetc:

 字符变量=fgetc(文件指针);

eg:ch=fgetc(fp);//其意义是从打开的文件fp中读取一个字符并送入ch中。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<string>
void test()
{
   FILE *fp;
if((fp=fopen("D:\\ test.txt","r"))==NULL)//如果出错,fopen值返回为null
{//一定要注意目录路径D:\\1\\2\\3\\    "\\"作为分隔
printf("nerror on open D:test.doc");
getchar();
exit(1);
/*
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值*/
}
}//常用这段语句打开文件

void main()
{
	test();
	system("pause");
}
ch=fgetc(fp);
while (ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}//这段语句可以用于逐步输入,EOF文档结束标志,putchar输出字符。



fputc:

被写入的文件可以用、写、读写,追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始。如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。

写入成功返回写入字符,不成功返回EOF

由此判断是否成功写入:



#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("D:\\test.txt","at+"))==NULL)
{
printf("Cannot open file ,strike any key exit!");
getchar();
exit(1);
}
ch=getchar();
printf("input something after the txt\n(if you input 'Q',exit)");
while (ch!='Q')
{
fputc(ch,fp);
ch=getchar();
}
printf("here is your new txt");
rewind(fp);//重置指针,如果没有重置就会无法读文件,出现一堆屯屯
while (ch!=EOF)
{
ch=fgetc(fp);
putchar(ch);

}
fclose(fp);
system("pause");
}


fread:+fwrite:

 fread(buffer,size,count,fp);  其中buffer是一个指针,在fread函数中,它表示存放输入数据的首地址,  size 表示数据块的字节数count 表示要读写的数据块块数。fp 表示文件指针。

fwrite(buffer,size,count,fp); 其中buffer是一个指针,在fwrite函数中,它表示存放输出数据的首地址,  size 表示数据块的字节数count 表示要读写的数据块块数。fp 表示文件指针

fscanf+fprintf:

fscanf函数,fprintf函数与前面使用的scanf和printf 函数的功能相似,都是格式化读写函数。 两者的区别在于 fscanf 函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的调用格式为: fscanf(文件指针,格式字符串,输入表列); fprintf(文件指针,格式字符串,输出表列); 例如:
fscanf(fp,"%d%s",&i,s);
fprintf(fp,"%d%c",j,ch); 


fseek:

fseek函数用来移动文件内部位置指针,其调用形式为: fseek(文件指针,位移量,起始点); 其中:“文件指针”指向被移动的文件。 “位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。常量表示位移量时,要求加后缀“L”。“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首(0),当前位置(1)和文件尾(2)。

rewind:

rewind(文件指针); 它的功能是把文件内部的位置指针移到文件首。


文件检测函数

C语言中常用的文件检测函数有以下几个。
一、文件结束检测函数feof函数调用格式: feof(文件指针); 
功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。

二、读写文件出错检测函数ferror函数调用格式: ferror(文件指针); 
功能:检查文件在用各种输入输出函数进行读写时是否出错。 如ferror返回值为0表示未出错,否则表示有错。

三、文件出错标志和文件结束标志置0函数clearerr函数调用格式: clearerr(文件指针); 
功能:本函数用于清除出错标志和文件结束标志,使它们为0值。






 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值