c语言 对非格式化输入输出的理解
在C语言中,非格式化输入输出主要涉及的是对字符和简单数据类型的处理,而无需进行复杂的格式控制。本文将详细解析几个关键的库函数,包括`getchar`、`getche`、`getch`、`getc`,以及对应的非格式化输出函数`putchar`、`putc`和`puts`。 ### 非格式化输入 #### 1. `getchar` `getchar`函数是C语言标准库`stdio.h`中的一个函数,用于从标准输入(通常是键盘)接收单个字符。当用户按下回车键时,`getchar`函数会返回接收到的字符。例如: ```c char ch = getchar(); ``` 在这个例子中,`ch`会存储用户输入的一个字符,直到遇到换行符为止。 #### 2. `getche`和`getch` `getche`和`getch`通常用于控制台程序,它们来自`conio.h`头文件,这不是C语言标准库的一部分,但在一些编译器如Turbo C++或Visual Studio中可用。`getche`和`getch`的区别在于是否回显输入的字符: - `getche`:读取并显示用户输入的字符,用户可以看到输入的内容。 - `getch`:读取但不显示用户输入的字符,输入的字符不会立即显示在屏幕上。 例如: ```c char ch1 = getche(); char ch2 = getch(); ``` 在这里,`ch1`将存储用户看到并输入的字符,而`ch2`将存储用户看不到的字符。 ### 非格式化输出 #### 1. `putchar` `putchar`函数用于在标准输出(通常是显示器)上打印单个字符。它同样在`stdio.h`中定义。例如: ```c putchar('A'); ``` 这会在屏幕上打印字符'A'。 #### 2. `putc` `putc`函数与`putchar`类似,但它可以将字符写入任何流,而不仅仅是标准输出。参数包括要写的字符和目标流。例如,向标准输出写入字符: ```c putc('B', stdout); ``` #### 3. `puts` `puts`函数用于打印字符串,直到遇到空字符`\0`为止。它会自动在字符串末尾添加换行符。例如: ```c puts("Hello, World!"); ``` 这将在屏幕上打印"Hello, World!"并换行。 ### 示例分析 ```c #include "stdio.h" #include "conio.h" int main() { char ch1, ch2, ch3; int a; printf("input numbers:\n"); ch1 = getchar(); ch3 = getchar(); ch2 = getchar(); scanf("%d", &a); printf("ch1=%c, ch2=%c,ch3=%c\n", ch1, ch2, ch3); printf("a=%d", a); } ``` 在这个示例中,用户输入的前三个字符分别被`ch1`、`ch2`和`ch3`接收,而剩下的字符(如果有的话)则通过`scanf`读入整数`a`。`getchar`在遇到回车时停止接收字符。 ```c #include "stdio.h" #include "conio.h" void main() { char ch1, ch2, ch3; printf("please enter three key\n"); ch1 = getche(); ch2 = getch(); printf("\n"); ch3 = getche(); printf("you've pressed %c and %c and %c.\n", ch1, ch2, ch3); } ``` 在这个例子中,用户输入的前两个字符由`getche`接收并显示,第三个字符由`getch`接收但不显示。用户输入的字符会在屏幕上实时显示,除了`getch()`接收的那个字符。 ### 结论 非格式化输入输出是C语言中最基础的I/O操作,它们在处理简单的字符输入和输出时非常有用。理解这些函数的工作原理对于编写简单的控制台应用程序至关重要。通过熟练掌握`getchar`、`getche`、`getch`、`getc`、`putchar`、`putc`和`puts`,程序员可以灵活地处理字符级的数据交互。
- 一席芦苇2014-09-25实话说没啥帮助~
- 逗比人生2013-04-23一般般,总结的还行
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助