当前位置: 代码迷 >> C语言 >> 请教:关于文件操作这样理解对吗?~~~
  详细解决方案

请教:关于文件操作这样理解对吗?~~~

热度:299   发布时间:2004-09-03 08:36:00.0
请教:关于文件操作这样理解对吗?~~~

#include <stdio.h> main() { FILE *fp; int i,k=0,n=0; fp=fopen("d1.dat","w"); for(i=1;i<4;i++) fprintf(fp,"%d",i); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n); fclose(fp); }

执行完输出结果是_____123 0. 我的理解:先以可写的形式打开d1.dat文件,然后在文件的开头连续输入1 2 3三

个字符,关闭文件;再以只读的形式重新打开d1.dat,由于123在文本文件中占3

个字节,分别以1、2、3三个字符的形式存储,从指针当前位置读入第一个字符串

123赋给k,123后为空,故把0赋给n,输出k,n,关闭文件.

搜索更多相关的解决方案: 文件  

----------------解决方案--------------------------------------------------------

不是读字符串,而是直接的判断是不是整形,然后输出!!!

那如果是123456789101112,那怎么输出那,我实验了一下,第一次输出只读到十为就结束了。

为什么????


----------------解决方案--------------------------------------------------------

1、2、3在文本文件中不是以字符形式存储的吗?

用fscanf读取时,为什么不读取1、不读取12,而读取123呢?

我觉得把123看成字符串是唯一解释得通的~~


----------------解决方案--------------------------------------------------------

那你的意思就是说不可以读取大与就的数了???

他回自己判断从开始的那个字符起,后面的时候是整数形式,然后在进行符值的!!!

我现在不理解的是是不是"%d"最多读10个字符!!!那符值又是怎么进行的???

[此贴子已经被作者于2004-09-03 11:59:38编辑过]


----------------解决方案--------------------------------------------------------

for(i=1;i<4;i++) fprintf(fp,"%d",i); ===>

for(i=1;i<4;i++) fprintf(fp,"%d\n",i);

再对比一下二次结果,你就明白了。


----------------解决方案--------------------------------------------------------

没有回答我的问题!!!


----------------解决方案--------------------------------------------------------
求助ggjj  如果是想用读出的字符用于计算的话 “123” 该怎么用字符转化成数字123呢??
----------------解决方案--------------------------------------------------------
  相关解决方案