[C语言]请问这题为什么选B?求大神!!谢谢!

如题所述

fprintf(fp,"%d",i); //此函数是向流中依照指定的格式写入数据,第一题写入123到文本fscanf(fp,"%d%d",&k,&n); //读取数据,读取方式默认为\n或空格,这里d1文本中没有空格,所以以换行间隔,所以第一题k读到的是123,n没有读到数据,输出的时候为"%d空格%d",所以结果为123空格0;第二题,写入数据格式为"%d空格",即写入数据为1 2 3\n4 5,读取格式为“%d%d”,默认以空格间隔,所以k=1,n=2,输出格式为"%d%d",所有结果为12,此题没有答案,D列印出错
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-07
同学 ,这个时这样的 先说你的第一个问题 你打印时没有用空格分开,所以123算一个字符
下面你fscanf的话123算一个,0算一个 所以n=0读不到!!就是fprintf(fp,"%d",i);这个“%d”没有空格!!!

下面那个问题,没有fclose那个写,所以用了rewind,效果一样,你看那个输出语句fprintf(fp,"%d ",i); “%d ”后面是有个空格的 fscanf()这个函数就是用空格区分是否为一个字符的 所以是1 , 2,不懂可以继续问,或者查一下这个函数追问

请问那这道为什么又选D?

有什么区别么?

追答

我解释了啊 没有fclose那个,所以用了rewind,效果一样,你看那个输出语句fprintf(fp,"%d ",i); “%d ”后面是有个空格的 fscanf()这个函数就是用空格区分是否为一个字符的 所以是1 , 2,不懂可以继续问,或者查一下这个函数 fscanf()

追问

可是两道题fscanf里都没有空格啊

可是两道题fscanf里都没有空格啊

只有下面的printf 里有空格,但这个只对输出格式有影响吧

追答

说错了 是fprintf函数 这个可以是逗号 空格
这个输出格式表明 你的文件.txt 里的数据 是用 空格 分 隔。 你要打开 读 这个 用 空格 为 分隔符 的文件。

说白了 你知道是这样 电脑不知道啊 电脑通过逗号或者空格来判断这是不是一个数据还是两个!!!!!!

追问

嗯嗯,谢谢啊!!

第2个回答  2014-01-07
写的时候是连在一起写的,读的时候一次就把它都读出来了,所以k是123,n读不到,就是0.追问

请问那这道为什么又选D啊

有什么区别么?