深圳网站设计制作,无锡网站营销推广,咸阳网站建设培训学校,wordpress函数大全fopen(参数1,参数2)#xff0c;第一个参数是要打开的文件名#xff0c;文件名字符串#xff0c;第二个参数用于制定文件打开模式的一个字符串。 注#xff1a;如果要打开某个盘的文本如F盘test文件夹下的test.txt文本#xff0c;则fopen(“F:\test\test.txt”,”r”); 程序…fopen(参数1,参数2)第一个参数是要打开的文件名文件名字符串第二个参数用于制定文件打开模式的一个字符串。 注如果要打开某个盘的文本如F盘test文件夹下的test.txt文本则fopen(“F:\test\test.txt”,”r”); 程序成功打开一个文件fopen返回一个文件指针FILE *fpfopen(参数1参数2) 打开失败返回空程序将退出 fclose(fp)关闭指针fp指定的文件成功关闭返回0否则返回EOF,结尾加上判定
if(fclose(fp)!0)printf(关闭失败);“r”:打开文本文件读取 “w”:打开文本文件写入先将文件长度截取0文件要不存在会先自动创建 “a”:打开文本文件写入向已有的文件尾部追加内容文件要是不存在会先自动创建 “r”:打开文本文件可读可写 “w”:打开文本文件可读可写先将文件长度截取0文件要不存在会先自动创建 “a”:打开文本文件可读可写向已有文件尾部追加内容如果文件不存在先创建 “rb”,”wb”,”ab”,”ab”,”ab”,”wb””wb”,”ab”,”ab”以二进制模式而非文本模式打开文件 一个以二进制读写文本形式写的程序
案例
#includestdio.hvoid main()
{FILE *f_picture,*f_rar,*f_swift;char pictureName[30],rarName[30],swift[60];printf(请输入文件名如F:\\picture\\1.jpg );scanf(%s,pictureName);printf(请输入另一个文件名如F:\\2.RAR );scanf(%s,rarName);printf(请输入您要合成的文件名如F:\\3.jpg);scanf(%s,swift);//判断图片和压缩文档以及swift转换器以二进制方式是否读写成功if(!(f_picture fopen(pictureName,rb))) {printf(Can not read %s successfully!\n,pictureName);return;}if(!(f_rar fopen(rarName,rb))){printf(Can not read %s successfully!\n,rarName);return;}if(!(f_swift fopen(swift,wb))){printf(Can not read %s successfully!\n,swift);return;}//二进制读写只能以feof函数判断是否在文本结尾结束非二进制文本读写可以用字符接收的值与EOF比较判断while(!(feof(f_picture))) //如果读到文件结尾返回非0否则返回0{char ch;ch fgetc(f_picture);fputc(ch, f_swift);}fclose(f_picture);while(!(feof(f_rar))){char ch;ch fgetc(f_rar);fputc(ch,f_swift);}fclose(f_rar);fclose(f_swift);
}fseek(指向被搜索文件的FILE指针偏移量(long类型值)模式)一切正常函数返回0否则返回-1 SEEK_SET 文件开始 SEEK_CUR 当前位置 SEEK_END 文件结尾 fseek(fp,0L,SEEK_SET); //找到文件开始处 fseek(fp,10L,SEEK_SET); //找到文件的第10个字节 fseek(fp,2L,SEEK_CUR); //文件当前位置向前移动两个字节 fseek(fp,0L,SEEK_END); //到达文件结尾处 fseek(fp,-10L,SEEK_SET); //从文件结尾处退回10个字节 ftell()函数为long类型 long lenftell(fp); //把从文件开始到文件指针处的字节数赋给len 字符输入输出函数fgetc和fputc fputc(ch,fp); //ch为定义的一个字符,fp为把ch这个字符写入到fp所指向的文件中去若写入操作成功函数返回写入字符的ascii码否则返回EOF
案例
#includestdio.hvoid main()
{char ch,ch2;FILE *fp fopen(test.txt,w); if(!fp)printf(打开失败\n);elseprintf(打开成功\n);ch getchar();while(ch!\n){putc(ch,fp);ch getchar();}fclose(fp);}char ch fgetc(fp); 从打开的文件fp中读取一个字符并赋给ch 注读取的文件必须是以读或读写的方式打开的。
案例
#includestdio.hvoid main()
{char ch;FILE *fp fopen(test.txt,r);if(!fp)printf(打开失败\n);elseprintf(打开成功\n);ch fgetc(fp);while(ch!EOF) //读到为本最后为返回EOF{putchar(ch);ch fgetc(fp); //fgetc函数每次读取一个字符指针会自动指向下一个字符地址}fclose(fp);
}注EOF不是可输出字符因此不能再屏幕上显示当读入的字符为-1时表示读入的已不是正常的字符而是文件结束符。
字符串输入输出函数fputs和fgets fgets(str,n,fp); //从fp指向的文件中读取n-1个字符送入字符数组str因为最后要加’\0’fp必须是读或者读写的方式打开文件指针正常读取函数返回str首地址读取失败返回null
案例
#includestdio.hvoid main()
{char buffer[20];FILE *fp;if(!(fpfopen(F:\test.txt,r))) //F盘下的一个test.txt文本{printf(读取失败\n);return;}fgets(buffer,20,fp);printf(%s\n,buffer);fclose(fp);
}fputs(str,fp); //把str中的字符串写入到fp指向的文件中直到遇到末尾的空字符。fp必须是以写读写的方式写入写入成功返回非负值否则返回EOF。注fputs(“\r\n”,fp); //用来在文本中换行
案例
#includestdio.hvoid main()
{FILE *fp;char buffer[20];char ch;gets(buffer);if(!(fpfopen(F:\test.txt,w))){printf(写入失败\n);return;}fputs(buffer,fp);rewind(fp); //重新定义文件内部指针到文件的开头方便在后面获取文件每个字符时从头开始获取ch fgetc(fp);while(ch ! EOF) //读到文本最后返回EOF{putchar(ch);ch fgetc(fp);}fclose(fp);
}feof函数用来判断是否到达文本结尾如果没有到结尾返回0否则返回非0二进制读写文本专用
ch getchar() //从标准输入中获得一个字符 ch getc(fp); //从fp指定的文件中获得一个字符读到文件结尾返回EOF Putchar(ch); //从标准输出中输出一个字符 putc(ch, stdout); //从标准输出中输出一个字符 Putc(ch, fp); //把字符写入fp指向的文件
注意在fopen里写路径需要\,如果通过scanf键盘输入路径只要\
fp fopen(); //fopen返回指向文件的指针返回失败返回NULL fclose() //关闭成功返回0否则返回EOF
fscanf(fp, “%s %d”, name, i); //从fp指向的文件读取%s %d给name和i fscanf(stdin, “%s %d”, name, i); //从标准输入中输入name和i fprintf(fp, “%s %d”, name, i); //%s %d这个字符串写入fp指向的文件 fprintf(stdout, “%s %d”, name, i); //从标准输出中输出字符串%s %d
二进制读写函数fread和fwrite char buffer[256]; double earnings[10]; fwrite(buffer,256,1,fp); //将数组中的数据写入文件数据分成1块每块256字节大小 fwrite(earningssizeof(double),10,fp); //将数组中的数据写入文件数据分成10块每块都是double大小。先将数组首地址的double类型大小数据写入fp指针自动后移将earnings下一个地址double类型大小数据写入fp… fwrite函数返回成功写入的项目数正常情况与第三个参数相等如果写入错误返回值会小于第三个参数
double earnings[10]; fread(earnings,sizeof(double),10,fp); //从fp指向的文件读取数据到earnings数组中读取10块每块是一个double类型的大小。第一个double类型大小的数据读入earnings首地址第二个double大小数据会自动读入earnings下一个地址,…) fread函数返回成功读取得项目数正常情况与第三个参数相等如果读取错误返回值会小于第三个参数
fprintf(fp,”%d”,35); //把35一字符串的形式写入fp fscanf(fp,”%s”,arr); //从fp内容以字符串的形式读入arr字符数组
rewind(fp)把文本指针置于文件开始处为读取做好准备很重要的一个函数