我习惯用scanf,printf函数先把几个结构体赋值,
然后用fprintf函数将其写入文件中,我用到的格式是:
%d %s %d\n为一个结构体,进行循环输出到一个文件中,这种做法是不是不好?
还有,我要读取的时候,%s字符串中有空格,系统把他与要输入的成员间隔空格混在一起了
导致读取结构体完全错位,有更好的办法处理这个问题吗?
确实解决了这个问题,那么,为什么用二进制打开文件呢?还有,我的文件是.txt格式的,用fwrite写,那文件就只能通过vc来打开,而不能直接打开看了,这问题大不大?
追答二进制打开文件, 输入输出 按字节读写,不做数据转换,读写速度快,处理大量数据时(一般实际工作中使用)用二进制 快 许许多多倍。
是 不能直接打开看,或者说可以打开,但肉眼不能识别意思(除字符串)。鱼和熊掌不能兼得。
文件名 也可叫 .txt
那么,读取时用什么函数呢?
我若用fscanf(stream,"%d,%s,%d",&i,s,&j)他仍然会默认把%s里面的空格作为区分标志
读的时候,把文件一次读出到一个长字符串中,再用标志区分各个数据。
追问嗯,知道了,谢谢