认真读完下面的程序,相信你一定能学会C语言文件常见操作
//C语言文件读写操作。
#include<stdio.h>
#include<stdlib.h>
int main(){
FILE *fp;
char s[20];
char ch;
fp=fopen("./text/test.txt","w+");//这里./表示当前路径;
//../上一个路径,../../上两个路径,./test/往下路径
//windows中绝对路径2中方式:反斜杠:D:\opencv\,斜杠:D:/opencv/都可以;
//windows中网络路径用/
//windows使用斜杆/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠\作为路径分隔符
if(!fp){
printf("Creat text failed!\n");
exit(0);
}
fprintf(fp,"Hello world!");
fputc('\n',fp);//换行符占2字节,相当于\r\n
fputc('a',fp);
fseek(fp,-1L,2);//最后一个参数0(或SEEK_SET)代表文件首部,对应第二个参数为正偏移(L代表是long型数据);
//最后一个参数为1(SEEK_CUR),当前位置;
//最后一个参数为2(SEEK_END),文尾;
//ftell(fp);--返回当前指针位置相对文首偏移,出错返回-1L;
fscanf(fp,"%s",s);
printf("%s\n",s);
//**************创建test2.txt,复制test.txt*************
FILE *fp2;
if((fp2=fopen("test2.txt","w"))==NULL){
printf("Creat file failed!\n");
exit(0);
}
//下面开始复制
rewind(fp);//rewind:返回文件读写首地址
//fclose(fp);
//fp=fopen("./text/test.txt","r");
while(feof(fp)==0){ //feof(fp):判断文件指针是否到达末尾,返回非0结束位置,0未结束。
ch=fgetc(fp);
//printf("%d ",feof(fp));
if(ch!=EOF)
fputc(ch,fp2);
//fputc(fgetc(fp),fp2);
}
if(fclose(fp2)){
printf("Can't close file!\n");
exit(0);
}
if(fclose(fp)){
printf("Can't close file!\n");
exit(0);
}
return 0;
}
//除此之外,还有fputs(s,fp)
//fgets(s,n,fp)---n为读取n-1位的字符,最后一位给'\0'
//fread(buffer,size,count,fp);
//***********数据块操作方式********
//fwrite(buffer,size,count,fp);
//buffer为字符串地址,size为数据块字节数,count为数据块数量
不足之处,请多多指教。互相学习,互相进步!