目录
前言
在代码的实际运用中,我们经常会遇到需要多组输入的情况,下面就给大家讲解三种常见的多组输入的写法
一.EOF判断
1.介绍
- EOF是End Of File的缩写,意为文件结束的标志。
- EOF其对应的ASCII码值为-1。
- scanf的返回值是成功读取的项数,所以不可能是-1,如此一来,也可以不断的进行while循环,实现多组输入了。想退出Ctrl+z一次或三次(根据编译器)。
2.代码实例
int main()
{
int a = 0;
while (scanf("%d", &a) != EOF)
{
printf("%d\n", a);
}
return 0;
}
二.与1判断
1.介绍
由于scanf函数的返回值是成功读取的项数,所以如果输入一个数字的话,可以直接和1判断,读取成功则进入循环,执行完毕后继续while的判断句,重新输入,如此一来便可以多组输入。想退出Ctrl+z一次或三次(根据编译器)。
2.代码实例
int main()
{
int a = 0;
while (scanf("%d", &a) == 1)
{
printf("%d\n", a);
}
return 0;
}
三.按位取反符号“~”
1.介绍
-1的二进制 | 10000000000000000000000000000001 |
-1的补码 | 11111111111111111111111111111111 |
-1按位取反 | 00000000000000000000000000000000 |
而0为假,不进入循环。即scanf返回值为-1的时候,按位取反为0,直接结束循环。
2.代码实例
int main()
{
int a = 0;
while (~scanf("%d", &a))
{
printf("%d\n", a);
}
return 0;
}