ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

关于对C语言 getchar 和 putchar 学习经验

关于对C语言 getchar 和 putchar 学习经验 一、前言在 C 语言中getchar() putchar()是两个非常基础、也非常常用的字符输入输出函数。它们都声明在stdio.h中getchar从函数名也可以看得出来就是得到一个字符菜鸟教程对getchar函数的解释 函数从屏幕读取下一个可用的字符并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。putchar当然啦与getchar输入对应的putchar就是输出一个字符菜鸟教程对putchar函数的解释函数把字符输出到屏幕上并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。初学者在学习 C 语言时我建议通过下面这段代码来理解它们#includestdio.hintmain(){intch;//定义一个变量ch,不能是char因为char是c语言关键字printf(请输入文本);chgetchar();//将屏幕上的字符赋值给变量chwhile(ch! )/*注意这里需要用而不是。 这是因为单引号表示是的字符而双引号则是字符串。 而众所周知的字符串是不能用来判断的因为比较的是内存地址无意义。*/{putchar(ch);//输出变量chchgetchar();//重新给ch赋值}return0;}这段代码的功能是不断读取字符并输出直到遇到空格为止。同理我们也可以稍做修改让他读到换行\n或者某个的字符不包含那个字符为止二、getchar 和 putchar 的函数原型在标准库中它们的原型大致如下intgetchar(void);intputchar(intc);1. getchar 的原型intgetchar(void);void表示它不接受参数返回值类型是int不是char成功时返回读取到的字符失败或遇到文件结束标志时返回EOF。EOF是End Of File的缩写通常定义在stdio.h中值一般为-1。2. putchar 的原型intputchar(intc);参数c是要输出的字符返回值类型是int成功时返回写入的字符失败时返回EOF。虽然参数是int但实际输出时putchar会把参数转换为字符形式输出。三、示例代码运行效果假设程序运行后输入hello world输出结果为hello因为程序会逐个读取字符并输出直到遇到空格 为止。空格本身不会被输出遇到空格后循环结束。如果输入abc def输出结果为abc四、getchar 详解1. getchar 一次只读一个字符例如intch;chgetchar();如果输入abc那么第一次调用getchar只会读取a不会读取b和c。如果想继续读取需要再次调用当然getchar函数会自己接着往下读不会傻fufu的读了a又读一遍achgetchar();// 读取 bchgetchar();// 读取 c2. getchar 的返回值getchar返回的是读取到的字符的 ASCII 值。例如intchgetchar();如果输入A那么ch的值就是65也就是字符A的 ASCII 码。如果你此时操作ch的值例如ch1·之后那么输出的结果会从A变成B如果输入结束或者读取失败getchar会返回EOF。3. 为什么用 int 接收 getchar 的返回值因为getchar需要返回所有可能的字符还需要返回EOF。char类型可能无法表示EOF特别是在某些编译器中char可能是无符号的。所以标准写法是intch;chgetchar();而不是charch;chgetchar();五、putchar 详解1. putchar 一次输出一个字符例如putchar(A);输出A也可以输出转义字符putchar(\n);输出一个换行。2. putchar 的参数putchar的参数是int类型但实际输出的是字符。例如putchar(65);会输出字符A因为65是字符A的 ASCII 码。3. putchar 的返回值putchar成功时返回写入的字符失败时返回EOF。大多数情况下我们不需要检查它的返回值但在一些对错误处理要求较高的程序中可以检查。反正我还没有还没有学到六、常见标准写法循环读取直到 EOFgetchar和putchar最常见的组合用法就是逐字符复制输入#includestdio.hintmain(){intch;while((chgetchar())!EOF)//只要没有遇到End of flie就一直循环{putchar(ch);}return0;}这段代码会不断读取字符并输出直到遇到文件结束标志EOF。注意括号while((chgetchar())!EOF)不能写成while(chgetchar()!EOF)因为!的优先级高于不加括号会导致逻辑错误。在 Windows 下可以按Ctrl Z再按回车表示EOF。在 Linux 或 macOS 下可以按Ctrl D表示EOF。七、常见的注意事项1. 用 int 接收 getchar 的返回值推荐intch;chgetchar();不推荐charch;chgetchar();2. 注意 ’ ’ 和 的区别 是字符常量表示一个空格字符 是字符串常量表示包含一个空格的字符串。在while (ch ! )中必须使用单引号。毕竟双引号也比不了只会返回true让循环一直进行,形成死循环。3. getchar 会读取换行符如果输入时按了回车getchar可能会读取到\n。如果希望遇到换行也停止可以写成while(ch! ch!\nch!EOF)4. 最好检查 EOF原示例只判断了空格没有判断EOF。更安全的写法是while(ch! ch!EOF){putchar(ch);chgetchar();}5. getchar 和 putchar 是逐字符处理的它们适合处理字符流例如字符统计逐字符复制简单加密大小写转换读取一行文本。如果需要读取字符串通常会使用fgets等函数。总结getchar和putchar是 C 语言中处理字符输入输出的基础函数。核心要点如下getchar从标准输入读取一个字符putchar向标准输出写入一个字符getchar的返回值建议用int接收使用getchar时最好检查EOF 是空格字符 是字符串getchar每次调用都会读取下一个字符标准复制输入的写法是intch;while((chgetchar())!EOF){putchar(ch);}掌握这两个函数之后就可以进一步学习字符统计、逐字符加密、文本复制等操作。如果这篇文章对你有帮助欢迎点赞、收藏、关注。标签C语言getcharputchar字符输入输出编程入门
返回列表