C语言以下是
什么意思#i nclude int m ain(vo id) { int c; while ((c=ge tchar( ))!=EO F){ pu tchar( c); pu tchar( c); } return 0; }: 当用getc har进行输 入时,如果输 入的第一个字 符为有效字符 (即输入是文 件结束符EO F,Wind ows下为组 合键Ctrl +Z, Un ix/Lin ux下为组合 键Ctrl+ D),那么只 有当最后一个 输入字符为换 行符''(也 可以是文件结 束符EOF, EOF将在后 面讨论)时, getch ar才会停止 执行,整个程 序将会往下执 行。譬如下面 程序段: w hile(( c = ge tchar( )) != EOF){ putcha r(c); } 执行程序 ,输入:ab c,然后回车 。则程序就会 去执行puc har(c) ,然后输出a bc,这个地 方不要忘了, 系统输出的还 有一个回车。 然后可以继续 输入,再次遇 到换行符的时 候,程序又会 把那一行的输 入的字符输出 在终端上。 对于getc har,肯定 很多初学的朋 友会问,ge tchar不 是以字符为单 位读取的吗? 那么,既然我 输入了第一个 字符a,肯定 满足whil e循环(c = getc har()) != EO F的条件阿, 那么应该执行 putcha r(c)在终 端输出一个字 符a。不错, 我在用get char的时 候也是一直这 么想的,但是 程序就偏偏不 着样执行,而 是必需读到一 个换行符或者 文件结束符E OF才进行一 次输出。 对 这个问题的一 个解释是,在 大师编写C的 时候,当时并 没有所谓终端 输入的概念, 所有的输入实 际上都是按照 文件进行读取 的,文件中一 般都是以行为 单位的。因此 ,只有遇到换 行符,那么程 序会认为输入 结束,然后采 取执行程序的 其他部分。同 时,输入是按 照文件的方式 存取的,那么 要结束一个文 件的输入就需 用到EOF (Enf O f File ). 这也就 是为什么ge tchar结 束输入退出时 要用EOF的 原因。 2. getcha r()的返回 值一般情况下 是字符,但也 可能是负值, 即返回EOF 。 这里要强 调的一点就是 ,getch ar函数通常 返回终端所输 入的字符,这 些字符系统中 对应的ASC II值都是非 负的。因此, 很多时候,我 们会写这样的 两行代码: char c ; c = getcha r(); 这 样就很有可能 出现问题。因 为getch ar函数除了 返回终端输入 的字符外,在 遇到Ctrl +D(Lin ux下)即文 件结束符EO F时,get char ( )的返回EO F,这个EO F在函数库里 一般定义为- 1。因此,在 这种情况下, getcha r函数返回一 个负值,把一 个负值赋给一 个char型 的变量是不正 确的。为了能 够让所定义的 变量能够包含 getcha r函数返回的 所有可能的值 ,正确的定义 方法如下(K &R C中特别提 到了这个问题 ): int c; c = getc har();小编还为您整理了以下内容,可能对您也有帮助:
putchar()在c语言中是什么意思
putchar()是c语言中的一个函数,功能是向终端输出一个字符。
putchar()函数包含在C 标准库 中。其输出可以是一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是用char定义好的一个字符型变量。语法结构为:int putchar(int char),可以把参数char指定的字符(一个无符号字符)写入到标准输出stdout中。
应用格式
putchar函数的基本格式为:putchar(c)。
1、当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符)。
2、当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符。
3、当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
下载本文