老牛来学习 发表于 2020-4-18 22:01:55

选择题




这题的答案是多少,谢谢!

love_qj 发表于 2020-4-18 23:10:20

D

love_qj 发表于 2020-4-18 23:21:52

love_qj 发表于 2020-4-18 23:10
D

不对,选B,开始没仔细看,这里是123\n45,所以存入文件的是123\n45,scanf遇到空格或者换行停止读出,所以k=123,n=45

麻麦皮 发表于 2020-4-19 11:03:31

123\n45写入文件,读出123\n并将123赋予k,读出45赋予n,所以printf('%d%d\n',k,n);就是12345

老牛来学习 发表于 2020-4-19 11:29:06

love_qj 发表于 2020-4-18 23:21
不对,选B,开始没仔细看,这里是123\n45,所以存入文件的是123\n45,scanf遇到空格或者换行停止读出,所 ...

我算的也是12345,但是答案是12,为什么,答案错了吗?

老牛来学习 发表于 2020-4-19 11:30:10

麻麦皮 发表于 2020-4-19 11:03
123\n45写入文件,读出123\n并将123赋予k,读出45赋予n,所以printf('%d%d\n',k,n);就是12345

我算的也是12345,但是答案是12,为什么,答案错了吗?

人造人 发表于 2020-4-19 13:20:34

先贴两个代码

#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 21:48:23

人造人 发表于 2020-4-19 13:20
先贴两个代码




感谢感谢,我自己也在这本书上找出了好多错误,某院校的指定教材...,家里就这一本书,先凑活着看吧,下次贴代码,麻烦了!

老牛来学习 发表于 2020-4-19 21:52:17

人造人 发表于 2020-4-19 13:20
先贴两个代码




知道为什么错了,它那个%d后面的空格太不明显了,所以就忽视掉了那个空格,感谢!

人造人 发表于 2020-4-19 22:00:16

老牛来学习 发表于 2020-4-19 21:52
知道为什么错了,它那个%d后面的空格太不明显了,所以就忽视掉了那个空格,感谢!

学编程一定要细心,像我这样的细心,^_^
我就没有忽略掉那个空格,而且还发现了那个 % 和 \ 是中文的
^_^
页: [1]
查看完整版本: 选择题