【发布时间】:2016-06-24 12:13:27
【问题描述】:
我尝试比较 std::cin 和 scanf,我希望它们具有相同的行为,但实际上并非如此:
#include<iostream>
using namespace std;
int main()
{
int i;
cin>>i;
return 0;
}
这接收来自用户的输入,没问题。 但是
#include<stdio.h>
int main()
{
int i;
scanf("%d\n",&i);
return 0;
}
我输入一个整数,即使我多次按“enter”,程序也不会终止,除非我输入另一个整数。
请注意,scanf 的格式字符串中有一个“\n”。 所以我尝试添加一个语句
printf("%d\n", i);
它会打印出我刚刚输入的第一个数字。这是正确的,但很奇怪,为什么在scanf之后,程序要求我输入任何字符而不是\n,才能退出程序?
我尝试了 VC 和 GCC,同样的问题。 \n 是什么意思?
【问题讨论】: