C语言 文件初学
fprintf只用于处理文本文件fwrite两个都可以吗?(fwrite处理取决于打开方式是那种方式吗?)是不是fwrite可以代替fprintf而fprintf不能代替...
fprintf只用于处理文本文件 fwrite两个都可以吗?(fwrite处理取决于打开方式是那种方式吗?)
是不是fwrite可以代替fprintf而fprintf不能代替fwrite? 展开
是不是fwrite可以代替fprintf而fprintf不能代替fwrite? 展开
展开全部
文本文件与数据文件的区别是,数据文件中出现的数据不一定都是ASCII编码,而文本文件中不会出现ASCII码以外的字符;文本文件存储是以字节为单位的,常用回车等来做分隔符,数据文件(文本文件是其中一种特殊形式)可以没有分隔符,存储单位也是灵活的;文本文件存储的数据一般要转换成字符串,读取后也要有一个将字符串转换成数据的过程,而数据文件直接读写后即可使用。所以数据文件比文本文件来说由于存储数据紧凑而占用磁盘空间要少。
所以你说的都是对的。普通fwrite一般用wb模式打开而fprintf用w打开,以保证读写正确。fwrite可以写字符串内容到文件中,而fprintf就无法直接写float型变量的值到文件中了,只能先转成字符串。例如:
写变量值:float a=3.14; fprintf(fp,"%f\n",a); fwrite(&a,sizeof(float),1,tp);
写字符串:char str[10]={ "3.14" }; fprintf(fp,"%s",str); fwrite(str,strlen(str)+1,1,tp);
所以你说的都是对的。普通fwrite一般用wb模式打开而fprintf用w打开,以保证读写正确。fwrite可以写字符串内容到文件中,而fprintf就无法直接写float型变量的值到文件中了,只能先转成字符串。例如:
写变量值:float a=3.14; fprintf(fp,"%f\n",a); fwrite(&a,sizeof(float),1,tp);
写字符串:char str[10]={ "3.14" }; fprintf(fp,"%s",str); fwrite(str,strlen(str)+1,1,tp);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询