C语言循环多组输入问题——while(scanf+EOF)

简介: C语言循环多组输入问题——while(scanf+EOF)

逐层分析while((scanf("%d",&a))!=EOF)

用这种循环的写法,可以解决一些需要循环到文件结束(也即文件不结束就循环)的问题。

我们先来看下这个句子,while((scanf("%d",&a))!=EOF)


逐层分析:

最外层:

是我们熟悉的while循环的一部分,

while循环:while(表达式){循环体}中的while(表达式)

内层(从左到右):

Ⅰ.scanf()函数语句

附:scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件(stdio.h)里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。(参考:百度百科)

Ⅱ."!=“C语言中的运算符号,意为"不等于”。

Ⅲ.EOF,是一个计算机术语,全称为"End Of File",也就是文件结束符

附:在C语言在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以[字符]的[ASCII]代码值的形式存放。我们知道,[ASCII代码值]的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。(参考:百度百科)


在逐层分析之后,来看一下一个习题,加深一下对while((scanf("%d",&a))!=EOF)的认识:

题目难度适中,建议先尝试写一下,

题目:计算a+b
输入要求:输入包括两个正整数a,b(1<= a, b<= 10^9),输入数据包括多组。
输出要求:输出a+b的结果。

C语言:

#include<stdio.h>
int main()
{
  int a,b,sum;
  while(scanf("%d%d",&a,&b) != EOF)
  {
    sum = a + b;
    printf("%d\n",sum);
  }
  return 0;
}
 } 


运行测试:

2 3
5
10 20
30
^Z
--------------------------------
Process exited after 6.876 seconds with return value 0
请按任意键继续. . .

让此类循环结束,需要我们手动键入ctrl+z 再加enter结束(尝试了几款编程软件,dev-c++是适用的,其它编程软件可自行尝试)。


作者:Code_流苏

如有错误,还望指正!

最后,希望大家多多点赞支持!


目录
相关文章
|
2月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
75 5
|
3月前
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
224 88
|
2月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
43 6
|
2月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
17 0
|
2月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
2月前
|
C语言
初识C语言:与计算机的交流之输入与输出(scanf和printf)
初识C语言:与计算机的交流之输入与输出(scanf和printf)
184 0
|
3月前
|
C语言
【C语言基础考研向】05 scanf读取标准输入超详解
本文详细解析了C语言中`scanf`函数的工作原理及常见问题。首先介绍了`scanf`如何处理标准输入,并通过示例说明了为何有时会出现阻塞现象及其解决办法。接着探讨了当输入包含多种数据类型时,特别是字符型数据的处理方式,强调了格式控制的重要性,并给出了正确的输入格式示例。通过正确配置,可以避免因空格和换行符导致的问题,确保数据准确读取。
88 10
|
3月前
|
C语言
【C语言基础考研向】08判断语句与循环语句
本文介绍了C语言中的关键编程概念:首先解析了关系表达式与逻辑表达式的优先级及计算过程;接着详细说明了`if-else`语句的使用方法及其多分支和嵌套应用;然后讲解了`while`循环与`for`循环的语法和注意事项;最后介绍了`continue`和`break`语句在控制循环中的作用和示例代码。