首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么getchar()返回无用的值?

getchar()函数是C语言中的标准库函数,用于从标准输入(通常是键盘)读取一个字符。

getchar()返回的值是int类型,而不是char类型。这是因为getchar()需要能够返回EOF(End Of File)这个特殊值,用来表示文件末尾或输入流结束的情况。

当从标准输入读取字符时,getchar()首先尝试从输入缓冲区中读取一个字符。如果输入缓冲区中有字符可读,getchar()会返回该字符的ASCII码值(0-127的整数),并将输入缓冲区中的指针向后移动一个位置。如果输入缓冲区为空,getchar()会等待用户输入字符,直到用户输入一个字符为止。

然而,getchar()返回的是int类型,而不是char类型。这是为了能够返回除字符外的特殊值EOF。EOF是一个宏定义,表示文件结束符,在stdio.h中定义为-1。

如果getchar()成功读取到一个字符,它会将该字符的ASCII码值返回。如果遇到文件结束或输入流结束的情况,getchar()会返回EOF。因此,我们应该将getchar()返回值的类型设置为int,而不是char。

当我们将getchar()返回值的类型设置为char时,如果输入流结束,getchar()将无法区分是文件结束还是读取到了ASCII码值为-1的字符。这样可能会导致错误的判断输入的结束。

总结来说,getchar()返回int类型,以便能够返回除字符外的特殊值EOF,用于判断文件结束或输入流结束的情况。要正确地使用getchar()函数,我们应该将返回值的类型设置为int,以便能够判断是否遇到了EOF。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

c#中executeNonQuery执行异常怎么处理_getchar的返回值

大家好,又见面了,我是你们的朋友全栈君。 SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数。...备注: 可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用...DataSet 的情况下更改数据库中的数据。...虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。...对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

94710
  • 经典回顾:为什么要学习无用的知识?

    从实用性的肤浅角度来看,知性和精神生活是一类无用的活动形式,人们沉湎其中的原因在于,它们能带来其他方式无法给予的巨大满足感。...在本文中,我将着力论述这样一个问题:对这些“无用”满足感的追求,究竟在多大程度上成就了多少做梦也想象不出的“用处”。...倘若这个世界缺少那些可以赋予其精神意义的无用之物,那是不是我们还有足够的机会去追求生命的完满?换句话说,我们对于有用性概念的理解,或许还没有狭隘到难以应对人文精神所固有的天马行空变化无常的可能性。...赫兹和麦克斯韦可能没有发明具体的东西,但他们“无用”的理论工作一旦被某个聪明的技术人员加以利用,就立即能创造出全新的通讯、实用和娱乐用途,这个贡献相对较少的人,却名声大噪起来,还挣了个盆满钵满。...我们希望对于“无用”知识的不懈追求,在未来会有所回报,过去如此,将来亦如此。但我们从来没有以此为由,来维护高等研究院存在的意义。高等研究院是学者的天堂。

    78660

    函数的参数&返回值

    、 函数的返回值的意义 5.2、操作函数的返回值 5.3、 函数可以返回多个数据 本节内容开始进入基础进阶部分的学习 1、什么是函数 我们通常在进行一些功能处理的过程中,需要执行一行或者多行代码来完成整个业务流程的处理...,就需要函数返回我们执行的结果,就是需要返回值; 如果我们的函数就是执行代码,执行的结果我们后面的代码不适用,就不需要定义返回值 类似生活中某A君让某B君做一件事,就是调用了某B君的函数,如果这件事是取快递...、操作函数的返回值 函数的返回值通过return关键字来确定 返回值的语法结构如下: def 函数名称(参数列表): 函数代码块 return 返回值 注意:返回值可以是任意对象(python...中一切皆对象) 返回值,需要在调用函数的时候进行接收,否则返回值也是没有意义的。...5.3、 函数可以返回多个数据 python的函数比较特殊,在函数执行完成后,通过return关键字可以同时返回多个数据,调用函数的地方根据返回值的顺序来接收对应的返回值。

    4K10

    JS|函数的返回值

    我们先来看一组代码 function kunkun(aru){ console.log(aru)}kunkun('打篮球') 这个看似能输出结果,实则是在逻辑上是不合理的,我们函数是做某件事或者实现某种功能...所以,接下来我会介绍一种逻辑更严谨的代码。 解决方案 return语句 有的时候,我们希望函数将返回值返回给调用者,此时通过使用return语句就可以实现。...函数的返回值格式 function 函数名(){ return 需要返回的结果;}函数名(); 函数只是实现某种功能,最终的结果需要返回给函数的调用者。是通过return来实现的。...只要函数遇到return就会把后面的结果,返回给函数的调用者。...num2){ return num1 + num2;}console.log(sum(1,2)) 结果输出为:3 由此可知,不要在函数的内部输出结果,应该return给函数的调用者。

    11.4K10

    对象的传值与返回

    对象的传值与返回 说起函数,就不免要谈谈函数的参数和返回值。一般的,我们习惯把函数看作一个处理的封装(比如黑箱),而参数和返回值一般对应着处理过程的输入和输出。...函数带有返回值时,若返回值不大于4字节,则会把返回值存储在eax寄存器中,而long long类型返回值回保存在edx:eax寄存器中,double类型的数据会被协处理器栈保存。...相对于内置类型的参数传递和返回值,对象的传值和返回可能更复杂一点。当然,如果使用对象的引用或者指针作为参数传递和返回值的方式,这里和上述的内置类型并无多大区别,因为指针总是4个字节。...x的值写入eax,然后返回而已。...而参数正是刚才fun调用结束后eax的值,因为它存储了返回值对象的地址。ecx记录this指针,正是被赋值对象的地址(a的地址)。赋值运算符重载函数调用结束后,完成返回值对象的赋值操作。

    2.5K80

    Go:命名返回值和直接返回值的使用与潜在隐患

    在Go语言中,命名返回值为函数返回值提供了名称,并在函数体的开头为其分配了零值。命名返回值可以简化代码,并在一些特殊情况下提供额外的便利。...混合使用命名返回值和直接返回值的隐患 如果在使用命名返回值的同时又直接返回了值,可能会产生混淆和不一致的结果。...,虽然给命名返回值result赋值了,但最终函数却直接返回了a + b的计算结果,而不是result的值。...判断和建议 一致性:在使用命名返回值时,应确保函数体内的返回逻辑一致。如果选择了命名返回值,则整个函数应该沿用这一约定。 可读性:混合使用可能会降低代码的可读性,增加维护的复杂性。...测试:如果不确定代码的行为,可以编写测试来验证函数的行为是否符合预期。 总结 命名返回值是Go语言中的一个有用特性,但混合使用命名返回值和直接返回值可能会带来混淆和隐患。

    31230

    python之函数的返回值

    这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数返回值相关内容。...---- 二、函数的返回值 函数并非总是直接输出数据,它还可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在Python中,函数使用return语句返回值。...def minimal(x, y): # 自定义计算较小值函数 if x > y: # 如果x>y成立,返回y的值 return y else: # 否则返回x的值...a和b的值 s = input('请输入字符串') # 输入字符串 c = demo(s) # 调用函数返回a和b的值给变量c print(c, type(c)) # 输出变量c及变量c的类型...在这里插入图片描述 ---- 三、参考 1、廖雪峰的官网 2、python官网 3、Python编程案例教程 ---- 四、总结   以上就是就是关于Python的函数返回值相关知识,可以参考一下,觉得不错的话

    2.1K30
    领券