fwrite写的是二进制内容,fprintf写的是数字转换成ASCII码之后的字符。两者都把数字64写入一个文件,用记事本打开看下,fwrite写的打开是乱码,fprintf写入的是6和4这两个字符。因为fwrite写的是64的二进制表示(4个字节,前面全是0,最后八位是0100000),fprintf写入的实际内容是36H和34H(16进制表示的字符6和字符4的ASCII编码)
首先
第一个
因为fprintf写入文件的时候是有格式化控制符列表的
而是用
fscanf是可以利用这个格式化控制列表读取数据的
当然你也可以使用fgets
和
fgetc
读取,
这都是没有问题的。
文本方式写入的意思应该是数据里边只有文字(包括数字字符串之类)的意思吧,这个是我的理解。