为什么SCANF总是WA,而CIN却能过很多数据?

0
0

scanf("%s\n", str)这样应该没有问题吧。。。

2 answer(s)

0

嗯..这里估计是小Ho考虑错了,仔细想想小Ho也是曾经用过scanf("%d %d", &n, &m)这种方法做过输入的。

小Ho去查了一些你的程序,觉得有可能是因为你在关掉了cin和scanf的同步之后同时使用了cin和scanf的缘故,然后小Ho就把cin >> n改成了scanf("%d", &n),之后的cin >> str也是,于是就不会像没改之前一样会有40呢。

0

根据小Ho的经验和猜测,scanf("%s", str)会在读到一个换行符或者空格符之后才停下,而且这个换行符或者空格符是不会返还的,也就是scanf("%s\n", str)中的\n实际上是去读了下一个换行符,这样你的输入事实上就是读一行跳过一行。

另外小Ho的程序就是用scanf("%s", str)这样输如的哦~因为小Ho实在不相信cin的读文件速度呢TT

write answer 切换为英文 切换为中文


转发分享