今天对以前一直没有掌握的c语言文件编辑做了一个总结:
现在对最基本的几个文件做一个总结;
fopen_s()
1,打开文件我是在vs2017上写的程序,发现对以前的fopen函数已经不再适用。就像scanf,fscanf一样因为存在溢出问题需要加上一个"_s".
fopen_s()
首先定义两个变量:
- FILE *filename文件指针
- errno_t nnn
然后打开文件的函数:
nnn=fopen_s(&filename,"test.txt","a+")
然后判断文件是否打开成功(基础知识:成功打开第二步的函数0,不成功不为0)
if((nnn=fopen_s(&filename,"test.txt","a+"))!=0)
{printf("file open failure");
exit(1);}
2,关闭文件 fclose(filename)
3,写一个字符到文件中 fputc('a',filename) (若错误会返回EOF)
4写一个字符串到文件中 fputs(str,filename) (注意这里的str是一个字符串指针,前面有定义 char str[23]="dsgds" 才可以使用;这里的字符串也可以直接用“dfdsgsd”)
5用格式化的方式给文件写东西 fprintf(filename,"%f",var) (这里就和printf函数有点像了)
6用二进制向一个文件中输入数据 fwrite(buffer,size,count,fp) (buffer:要存储进入文件数据的起始位置 ,size要读写的字符数, cout要读写的数据项(每个数据项长度为size) fp就是上文讲的filename)
对于这个函数我想谈一下感想,这里我自己实验了一下可以打印出一个函数的二进制,你也可以打印出结构体的二进制。作用自己想(‘。’)
刚刚是对文件输入,现在谈输出。
3' 输出一个字符 char a=fgetc(filenaem)
4'输出一个字符串 fgets(str ,count,filenaem) (这里的str表示自己在程序中定义的字符串,count 表示你要读取的字符个数 ,完了后会自动添加‘\0’作为结束符所以一定要注意count的大小不要大于或等于定义的字符串长度)
5‘ 格式化的方式读取文件数据fscanf_s(文件指针,格式字符串,输入表列)
fscanf_s(filename ,"%c",a)

浙公网安备 33010602011771号