1、C语言中缺省是按照文本方式打开文件。
2、二进制文件和文本文件3、文本方式和二进制方式
(1)按照文本方式(缺省情况下)往文件中写入数据时,一旦遇到换行字符(ASCII为10),则会转换为回车-换行(ASCII为13、10)。多写入了一个字符!在读取文件时,一旦遇到回车-换行的组合(即连续的ASCII 13、10),则会转换为换行字符(ASCII为10)。(5)不管是文本文件还是二进制文件,都可以采用二进制方式或者文本方式打开,然后进行写入或者读取。但是,对于二进制文件来说,如果以文本方式读取时,可能会出现一些问题。
4、问题产生:给你一个整数,例如:98341,将这个整数保存到文件中,要求在以记事本程序打开该文件时,也显示98341。(1):
FILE *file; file=fopen("1.txt","w"); char *p="98341"; fwrite(p,1,5,file); fclose(file);或者(2)
FILE *file; file=fopen("1.txt","w"); char ch[5]; ch[0]='9'; ch[1]='8'; ch[2]='3'; ch[3]='4'; ch[4]='1'; fwrite(ch,1,5,file); fclose(file);或者(3):我们在存储时去存储“98341”这五个字符的ASCII码(字符“0”的ASCII码是48)。
FILE *pFile=fopen("3.txt","w"); int i=98341; char ch[5]; ch[0]=9+48; ch[1]=8+48; ch[2]=3+48; ch[3]=4+48; ch[4]=1+48; fwrite(ch,1,5,pFile); fclose(pFile);或者(4)利用itoa()函数将证书转换为字符串,然后将这个字符串写入文件。但是这种方法值涉及数字的保存,如果把数字和字符夹杂在一起,并要求以记事本打开时能看到数字,就不用itoa函数,就要将这些整数数字转换为ASCII码,然后在下写入文件。
FILE *pFile=fopen("3.txt","w"); int i=98341; char ch[5]; itoa(i,ch,10); fwrite(ch,1,5,pFile); fclose(pFile);
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/songshimvp1/article/details/48049135