u013845780
chinanoahli
采纳率100%
2015-01-07 11:02 阅读 4.7k
已采纳

C语言 文件读写fscanf 不能读取文件第一行

我在做USACO的训练题
按照要求写了个读文件的程序,但是出了一点我不能理解的bug
希望老师指点指点

程序:

 int main () {
        char comet[6];
        char group[6];
        FILE *input;

        input=fopen ("ride.in", "r");
        fscanf (input, "%s\n%s", comet, group );   \\fscanf (input, "%s%s", comet, group );   都试过结果是一样的

        //test input
    puts ("\ntest input");
        printf ("%s\n%s\n", comet, group );
        printf ("%c\n%c\n", comet[0], group[0] );

        return 0;
}

ride.in 文件内容:

COMETQ
HVNGAT

编译后的输出却是:


HVNGAT

H
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    save4me save4me 2015-01-08 02:52

    程序测试没有问题。请检查一下你的ride.in的编码是不是ANSI,如果是UTF-8,Unicode等,可能会有问题。

    点赞 评论 复制链接分享
  • sysysty 丝丝丝丝 2015-01-08 01:15

    表示我的机子上跑没问题。。。表示作为一个菜鸟,不知道原因,不过对于
    \fscanf (input, "%s%s", comet, group );
    我把这里的“\”改成了"//"……
    图片说明
    这是我的运行结果。。。

    点赞 评论 复制链接分享
  • hxh88888888 黄小东的csdn 2015-01-08 01:34

    LZ注释错了//fscanf (input, "%s%s", comet, group );

    点赞 评论 复制链接分享
  • lx624909677 lx624909677 2015-01-08 03:21

    用fscanf一定要保证写入的格式和读出的格式完全一致才可以,用UE看下你的源文件里面的字符的十六进制数,看看有没有什么你看不到的字符

    点赞 评论 复制链接分享

相关推荐