选择题
这题的答案是多少,谢谢! D love_qj 发表于 2020-4-18 23:10
D
不对,选B,开始没仔细看,这里是123\n45,所以存入文件的是123\n45,scanf遇到空格或者换行停止读出,所以k=123,n=45 123\n45写入文件,读出123\n并将123赋予k,读出45赋予n,所以printf('%d%d\n',k,n);就是12345 love_qj 发表于 2020-4-18 23:21
不对,选B,开始没仔细看,这里是123\n45,所以存入文件的是123\n45,scanf遇到空格或者换行停止读出,所 ...
我算的也是12345,但是答案是12,为什么,答案错了吗? 麻麦皮 发表于 2020-4-19 11:03
123\n45写入文件,读出123\n并将123赋予k,读出45赋予n,所以printf('%d%d\n',k,n);就是12345
我算的也是12345,但是答案是12,为什么,答案错了吗? 先贴两个代码
#include <stdio.h>
int main(void) {
FILE *fp;
int i, k, n;
fp = fopen("data.dat", "w+");
for(i = 1; i < 6; i++) {
fprintf(fp, "% d ", i);
if(i % 3 == 0) fprintf(fp, " \n");// 这个 \n 前面是不是有空格,真的不好说,这里就加上吧
}
rewind(fp);
fscanf(fp, "% d% d", &k, &n);
printf("% d% d \n", k, n); // 在这个字体下,看不出那是不是空格,这里也加上吧,不过貌似这个不是空格
fclose(fp);
return 0;
}
#include <stdio.h>
int main(void) {
FILE *fp;
int i, k, n;
fp = fopen("data.dat", "w+");
for(i = 1; i < 6; i++) {
fprintf(fp, "%d ", i); // 这个 d 后面是不是有空格?
if(i % 3 == 0) fprintf(fp, "\n");// 写这本书的作者,很不负责任,这个 \ 应该是中文的, % 也是中文的
}
rewind(fp);
fscanf(fp, "%d%d", &k, &n); // 这里应该是 '%d%d',不是 '% d% d'
printf("% d% d\n", k, n);
fclose(fp);
return 0;
}
第二个代码就是这道题的答案,你运行一下第二个代码就知道答案了
还有,这种问题
你上机试一试就知道了,还要我们帮你把代码从书上抄到计算机上测试吗?
最后,再一次批评作者的不负责任,也许你可以考虑换一本书了
这种不负责任的作者写的书,不值得你看
人造人 发表于 2020-4-19 13:20
先贴两个代码
感谢感谢,我自己也在这本书上找出了好多错误,某院校的指定教材...,家里就这一本书,先凑活着看吧,下次贴代码,麻烦了! 人造人 发表于 2020-4-19 13:20
先贴两个代码
知道为什么错了,它那个%d后面的空格太不明显了,所以就忽视掉了那个空格,感谢! 老牛来学习 发表于 2020-4-19 21:52
知道为什么错了,它那个%d后面的空格太不明显了,所以就忽视掉了那个空格,感谢!
学编程一定要细心,像我这样的细心,^_^
我就没有忽略掉那个空格,而且还发现了那个 % 和 \ 是中文的
^_^
页:
[1]