当前位置: 首页 > 知识库问答 >
问题:

getchar()在C中提供输出

聂昱
2023-03-14

这个程序应该做什么,

#include<stdio.h>
main()
{   
  getchar();
}

我希望它显示一个空白屏幕,直到我在键盘上点击任何字符。但是它做的事情很奇怪。它显示我按的任何东西。它永远不会终止,直到我按下回车键。

据我所知,getchar()应该只读取一个字符。它不应该输出任何东西。

  • 为什么它打印我输入的每个字符?

编辑:

为什么 getchar() 在读取一个字符后不停止,例如在这段代码中:

   #include <stdio.h>  

   main()  

   {  

    getchar();  

   printf("Done");  


  }  

程序应在读取一个字符后打印完成。

共有3个答案

杜禄
2023-03-14

getchar基本上做的是从标准输入读取。这是一个文件描述符为0的文件,它通常指的是您输入的终端(除非您通过将其更改为某个文件)

宗政功
2023-03-14

您正在按键,因此您的主机向您显示相同的字符。这是预期的行为。getch() 还将返回正在屏幕上打印的字符的 ASCII 值。

钱振
2023-03-14

getchar() 完成之前,您的程序不会终止。getchar() 在填充输入缓冲区之前不会完成。在按“Enter”之前,不会填充输入缓冲区。

您看到的字符就是您正在键入的字符。这是默认的终端驱动行为,不是由程序驱动的。

 类似资料:
  • getchar(由标准输入设备内读进一字符) 相关函数 fopen,fread,fscanf,getc 表头文件 #include<stdio.h> 定义函数 int getchar(void); 函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。 返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生。

  • getchar 由标准输入设备内读进一字符 相关函数 fopen,fread,fscanf,getc 表头文件 #include<stdio.h> 定义函数 int getchar(void); 函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。 返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生。

  • 因此,在迁移到其他主机,导出和导入数据库,修复链接后,我得到了一些奇怪的php输出,该输出在以前的主机上运行良好。 php连接: php数据库调用: html格式的输出: '; } echo“”;echo“”;如果($row['priceMax']){echo'';}elseif($row['price']){echo'';}$firstRow=0;}}? 有人能解释这里到底出了什么问题吗?我不知

  • 所以我有一个带有shell_exec命令的index.php文件,当我在ubuntu的终端上运行它时,它工作得很好,但是当上传到命名堆托管时,它就不工作了。 http://www.logh.info/这里是网站,是的,我100%确定的路径,以该网站。sh文件是正确的

  • 问题内容: 在使用树集时,我发现了非常奇怪的行为。 根据我的理解,以下程序应打印两条相同的行: 但奇怪的是它打印: 我无法理解-为什么树集的行为如此? 问题答案: 发生这种情况是因为SortedSet的Comparator用于排序,但是removeAll依赖于每个元素的方法。从SortedSet文档中: 请注意,如果排序集要正确实现接口,则排序集(无论是否提供显式比较器)所维护的顺序必须 与equ

  • 0.9.2 新版功能. 封装字符串,提供 ANSI 色彩输出的函数。 本模块中的所有函数均返回包裹对应色彩 ANSI 字符的 text 字符串。 例如,在支持 ANSI 的终端中打印绿色文字: from fabric.colors import green print(green("This text is green!")) 这些函数返回值都是修改后的字符串,因此你也可以嵌套使用它们: fro