逐层分析while((scanf(“%d“,&a))!=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)的认识:

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

题目:输入数字,输出对应得ASCII值

输入要求:输入包含由空格、换行等分隔的正整数,处理到文件末尾(EOF)。

输出要求:输出相应的ASCII值且输出末尾无换行符。

C语言:

#include<stdio.h>

int main()
{
	int a;
	while((scanf("%d",&a))!=EOF)
	{
		printf("%c",a);
	 } 
	return 0;
 } 

作者:Code_流苏

如有错误,还望指正!

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

上一篇:计算机中的编码


下一篇:华为机试34:图片整理