我在做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
程序测试没有问题。请检查一下你的ride.in的编码是不是ANSI,如果是UTF-8,Unicode等,可能会有问题。
表示我的机子上跑没问题。。。表示作为一个菜鸟,不知道原因,不过对于
\fscanf (input, "%s%s", comet, group );
我把这里的“\”改成了"//"……
这是我的运行结果。。。
用fscanf一定要保证写入的格式和读出的格式完全一致才可以,用UE看下你的源文件里面的字符的十六进制数,看看有没有什么你看不到的字符
LZ注释错了//fscanf (input, "%s%s", comet, group );