scanf表达式的值

scanf(…)表达式的值为int,表示成功读入的变量个数

int n,m;
printf(“%d”,scanf(“%d%d”,&n,&m));

输入:34 56 输出:2 输入:34 a 输出:1 输入:a 56 输出:0 scanf(…) 值为EOF(即-1)则说明输入数据已经结束

int n,m;
while(scanf(“%d%d”,&n,&m) != EOF)
{
//EOF是直接能拿来用的符号常量
printf(“%d”,n+m);
}

也可以:

int n,m;
while(scanf(“%d%d”,&n,&m) == 2)
{
printf(“%d”,n+m);
}

Windows系统下,不停输入两个整数再敲回车, 则不停输出它们的和,直到输入 Ctrl+Z 然后 回车,程序结束

cin表达式的值

cin >> m >> n … 表达式的值,在成功读入 所有变量时为true,否则为false

int n,m;
while(cin >> n >> m )
{
printf(“%d”,n+m);
}

循环会一直持续下去,直到输入 Ctrl+Z 然后 回车,程序结束

处理无结束标记的OJ题目输入

输入若干个(不知道多少个)正整数,输出其中的最大值 Sample Input: 2 3 4 5 6 787 54532 12 Sample Output: 54532 代码如下:

#include
#include
using namespace std;
int main()
{
int n, mx = 0;
//或 while(scanf(“%d”,&n) == 1){
while(scanf(“%d”,&n) != EOF)
{
if( n > mx ) mx = n;
}
printf(“%d”,mx); return 0;
}

或者:

#include
#include
using namespace std;
int main()
{
int n, mx = 0;
while( cin >> n)
{
if( n > mx ) mx = n;
}
printf(“%d”,mx);
return 0;
}