C语言的文件读写

书上有一段话事这样说的:从键盘输入4个学生的数据是ASCII码,也就是文本文件,在送到计算机内存是,回车和换行符转换成一个换行符。再从内存以“wb”方式(2进制写)输出到... 书上有一段话事这样说的:从键盘输入4个学生的数据是ASCII码,也就是文本文件,在送到计算机内存是,回车和换行符转换成一个换行符。再从内存以“wb”方式(2进制写)输出到“stu-list”文件,此时不发生字符转换,按内存中的存储形式原样输出到磁盘文件。在上面验证程序中,又用fread函数从“stu-list”文件读入数据,注意此时用的是“rb”方式,即二进制方式,数据原样输入,也不发生字符转换。也就是这是候内存中的数据恢复到“stu-list”输出钱的情况,最后用printf函数输出。换行符又转换成回车加换行符。
如果用“r”方式读入数据则会出错。
我想问这段话应该怎样理解?还有就是回车加换行符的转换是怎么回事??
展开
 我来答
L_o_o_n_i_e
2011-05-19 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5205万
展开全部
回车和换行符转换成一个换行符 -- 书本用的是老概念。
键盘输入,我们按Enter键,C/C++语言收到的就是'\n' (新行符)。
打字机老概念:回车和换行,回车就是回到本行开始位置,换行就是到下一行。回车符 '\r' ,换行符'\n' , 老码 CRLF。
“从键盘输入4个学生的数据是ASCII码,也就是文本文件”,把“也就是文本文件”删去。键盘输入是输入流,不叫文件。
“r”方式读入 -- fopen(文件名,"r") -- 用 "r" 方式 打开,是作为 文本文件打开,用于读。而不是用 二进制方式。
文件 用 wb 方式 打开和写成的, 必须用 rb 方式 打开和 读入.
带 b 用于 二进制文件。不 带 b 用于 文本文件(ASCII文件) .
延熠PN
2011-05-19
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
你试试freopen()函数:
freopen("地址","r",stdin)这个表示从前面那个地址读入;地址如果跟程序在同一文件夹就不需要指明位置,就直接用你要输入的格式即可。像:freopen("input.txt","r",stdin)
freopen("地址","w",stdout)w表示读出到地址,跟读入一样。地址就是你存输出数据的地方
后面的输入输出用正常的函数:scnaf ,printf!
追问
“回车和换行符转换成一个换行符”这个应该怎么理解?回车不是换行么?当输入完成的时候   只有一个回车呀
追答
“回车和换行符转换成一个换行符”这个是书上的原话?    不清楚! 你用我说的那个函数试试,看能不能实现你想要的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qwe2257788
2011-05-19
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
FILE *fout=fopen("stu-list.out","wb");
fprintf(fout,".. ",..)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式