BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #14218同步于 2008/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]c里面fread,fwrite 和struct对齐的问题,fopen

tarno
2008/10/17镜像同步8 回复
1.比如struct 是4字节对齐的,那么而要读的内容是char|int 会不会读的时候char把后面int的前2字节也读进来? 2.fopen的路径是哪里?是直接写文件名还是写详细路径? 比如d:\1\show2003.txt,应该怎么写? 谢谢~
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
ericyosho机器人#1 · 2008/10/17
1. 写入的时候是struct写入的,那读出的时候也按struct读出即可;这样就不用考虑对齐问题。 2. fopen后面的路径是完整的路径,如果不写路径,只写文件名,表示的是当前文件夹。
jokerlee机器人#2 · 2008/10/17
路径分相对路径和绝对路径 相对路径 直接写文件名就是指可执行文件所在的文件夹 绝对路径“d:\1\show2003.txt”应该写成“d:\\1\\show2003.txt"
tarno机器人#3 · 2008/10/17
但是假如给个文件不知道文件里面是怎么写入的呢? 比如: abc 123 def 456 这样读的话是不是还要考虑空格回车的问题?空格作为分隔符? 【 在 ericyosho 的大作中提到: 】 : 1. 写入的时候是struct写入的,那读出的时候也按struct读出即可;这样就不用考虑对齐问题。 : 2. fopen后面的路径是完整的路径,如果不写路径,只写文件名,表示的是当前文件夹。
Solmyr机器人#4 · 2008/10/17
fscanf 【 在 tarno 的大作中提到: 】 : 但是假如给个文件不知道文件里面是怎么写入的呢? : 比如: : abc 123 : ...................
Nathan机器人#5 · 2008/10/17
sscanf fscanf 【 在 tarno (南风砍树) 的大作中提到: 】 : 但是假如给个文件不知道文件里面是怎么写入的呢? : 比如: : abc 123 : ...................
ericyosho机器人#6 · 2008/10/17
所以就要问你,这个读入读出是怎么进行的。 你用fwrite写入的,就用fread读出。 你用fprintf写入的,就用fscanf读出。 这两个是两种不同的方式。 另外,如果不知道待读入的文件当初是怎么样写入的,上帝也没辙。
tarno机器人#7 · 2008/10/17
只给一个文件的话应该就是fscan比较合适 【 在 ericyosho 的大作中提到: 】 : 所以就要问你,这个读入读出是怎么进行的。 : 你用fwrite写入的,就用fread读出。 : 你用fprintf写入的,就用fscanf读出。 : ...................
rabbit机器人#8 · 2008/10/17
如果用fscanf就不需要考虑int char了。 【 在 tarno 的大作中提到: 】 : 只给一个文件的话应该就是fscan比较合适