EOF:getchar()函数返回的一个特殊值

EOF 是个宏,其意思是:End Of File,文件尾标志。 从数值上来看,就是整数-1
在C语言的头文件中对其进行了宏定义:
libio.h: # define EOF (-1)
当读文件操作时,遇到文件结束位置或读数据出错均会返回 EOF。 (C语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin) 的一个宏 )
int getchar() ;
//从标准输入缓冲区读取一个字符,成功返回该字符的ASCII值,出错,返回EOF
那么,如何在键盘输入时,产生EOF呢? 不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键)
windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认
以下代码供参考:
#include <stdio.h>
void main()
{
int ch;
while ( ch!=EOF )
{
ch=getchar();
printf("ch=%d\n", ch ); //输出读返回的ch值,读到EOF会输出-1
}
}

时间: 2024-10-13 12:20:31

EOF:getchar()函数返回的一个特殊值的相关文章

Python函数返回不定数量的值

Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回. 使用代码验证: def func_a(): return 1, 2, 3, 4 if __name__ == '__main__': temp = func_a() print(type(temp)) 运行结果,确认返回的是一个tuple, <class 'tuple'> 稍微修改代码: def func_a(*args): return 1, 2, 3,

&lt;转&gt;SQL Server返回最后一个标识值的三个函数:IDENT_CURRENT、@@IDENTITY、SCOPE_IDENTITY

MSDN对官方解释:这三个函数都返回最后生成的标识值. 但是,上述每个函数中定义的“最后”的作用域和会话有所不同. 1.IDENT_CURRENT 返回为某个会话和当前作用域中的指定表生成的最新标识值. 如果 IDENT_CURRENT 值为 NULL(因为表从未包含行或已被截断),IDENT_CURRENT 函数将返回种子值. 2.@@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值. 如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. 如果插

nodejs如何从异步回调函数返回想要的值

const fs = require('fs') let read=()=>{ fs.readFile("./contents/test.json",(err,data)=>{ return JSON.parse(data.toString()) }) } (()=>{ let result = read() console.log(result) //undefind })() 我们想从一个回调函数返回一个我们想要的值,如果按照上面的写法我们始终只能拿到undefi

用python读取oracle函数返回值

在oracle中创建一个函数,本来是想返回一个index table的,没有成功.想到文本也可以传输信息,就突然来了灵感,把返回值设置文本格式. 考虑到返回数据量可能会很大,varchar2类型长度吃紧,于是将返回值类型设置为clob. 我是用scott用户的测试表,这个是函数定义情况: create or replace function test_query_func(dept varchar2) return clob is        type test_record is recor

转 C++函数返回值,你必须注意的问题

归根结底,C++所面临的问题要求它提供各种各样的机制以保证性能,也许,这辈子也见不到C++能安全有效的自己进行内存垃圾回收..... 老程序猿都会提醒菜鸟,注意函数的返回值,因为,很可能,你的函数返回的数据在后续的使用中会出错.那么函数在返回值时要注意什么呢? 本篇博客尝试用最简练的普通大白话,讲解函数返回值的问题. C++把内存交给了程序猿,但是,请你注意,它可没把所有的内存都交给你,交给你的只是堆上的内存,也就是你通过malloc函数  和new 关键字申请来的内存,除了这些内存以外,其他的

速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

[源码下载] 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函数返回值 可变函数 匿名函数 闭包函数 回调函数 示例1.函数的相关知识点 1(基础)function/function1.php <?php /** * 函数的相关知识点 1(基础) */ // 可以在相关的 function 声明语句之前调用该函数 f1(); function f1() { echo "f1"; echo "<br />"; } // 这里调用

Python--函数内部变量都是临时的,当函数返回以后,返回值可以赋予一个变量。

#coding=utf-8print "Let's practice everything."print ' You\'d need to know\'bout escapes with \\ that do \n newlines and \t tabs.' poem = """\tThe lovely worldwith logic so firmly plantedcannot discern \n the needs of lovenor comp

理解-加号重载要使用全局函数+返回值非引用

一.C++中的加号重载使用全局函数的一个有点是可以使用级联的方式进行加法操作. Fraction a,b,c,d,e; A=b+c+d+e; 若为成员函数 1.返回的b的this指针分别作用于后面的变量,因此是对b的修改: 2.如果返回一个新的变量,上面的级联的问题似乎可以解决. 3.问题在于如果存在隐式类型转换,且第一个参数为需要转化的类型时,可能找不到该定义的成员函数,因此使用全局的方式可以便面这个问题 二.返回值需要时一个值,而不是引用 从一个局部函数返回引用,可以考虑两种情况. 1.如果

【转载】让c++ 函数返回一个数组

在c++中是不允许数组作为函数的返回值的 int [] someFunction( ); //ILLEGAL 要想实现函数返回一个数组,那返回对应数组里面类型的指针 you must return a pointer to the array base type and have the pointer point to the array. So, the function declaration would be as follows: int* someFunction( ); //Leg