各类资料学习下载合集
https://pan.quark.cn/s/8c91ccb5a474
C 语言字符输入:掌握 getchar 和 scanf 的用法与陷阱
你好!在 C 语言编程中,与用户进行交互最基本的方式就是通过标准输入和标准输出。我们之前探讨了如何使用 printf
和 putchar
进行输出,那么如何从键盘接收用户的输入呢?
C 语言标准库提供了多种输入函数,其中最常用、也是处理字符输入的基础函数是 getchar
和 scanf
。虽然它们都能用于接收字符,但用法和适用场景有所不同。理解它们的特性,特别是 scanf
在处理字符输入时可能遇到的“陷阱”,对于编写健壮的 C 程序至关重要。
今天,我们就来深入学习这两个函数,并通过详细的代码示例来掌握它们的用法。
1. 输入函数概述:getchar
vs. scanf
C 语言中用于从标准输入读取数据的函数有很多,但就字符输入而言,我们主要关注:
-
getchar()
: 一个简单直接的函数,用于读取单个字符。 -
scanf()
: 一个功能强大的格式化输入函数,可以读取多种类型的数据,包括字符。
让我们分别来看它们的详细用法。
2. getchar()
:简单直接的单字符读取器
2.1 作用与用法
getchar()
函数用于从标准输入(通常是键盘)读取一个字符。它不需要任何参数,并且会返回读取到的字符(以 int
类型返回,以便能表示特殊的 EOF
文件结束标志)。
要使用 getchar()
读取的字符,你需要将其返回值赋值给一个变量来存储。
2.2 代码示例:使用 getchar
读取单个字符
#include <stdio.h> // 引入标准输入输出库int main() {printf("请输入一个字符并按回车:");// 调用 getchar() 读取一个字符,并将其赋值给 my_char 变量int my_char_int = getchar(); // getchar() 返回 int 类型// 将读取到的 int 强制转换为 char 类型以便打印char my_char = (char)my_char_int;printf("你输入的字符是: %c\n", my_char);printf("该字符的 ASCII 值为: %d\n", my_char_int); // 打印原始 int 值return 0; // 程序成功结束
}
2.3 编译与运行结果
将上面的代码保存为 getchar_example.c
文件,然后编译运行:
gcc getchar_example.c -o getchar_example
./getchar_example
运行示例 1:
请输入一个字符并按回车:A <-- 用户输入 A,然后按回车
你输入的字符是: A
该字符的 ASCII 值为: 65
运行示例 2&