scanf gets getchar
时间: 2023-04-11 19:04:37 浏览: 126
C语言中getchar, gets, 和 scanf 三种不同函数的区别
当需要从控制台输入数据时,可以使用scanf函数来读取数据。而getchar函数则用于从输入流中获取单个字符。这两个函数的主要区别在于,scanf函数可以读取不同类型的数据,包括整数、浮点数和字符等,而getchar函数仅用于读取单个字符。
scanf函数的语法如下:
```
scanf("%格式控制符", &变量名);
```
其中,格式控制符指定了需要读取的数据类型。例如,"%d"表示读取一个整数,"%f"表示读取一个浮点数,"%c"表示读取一个字符等。
getchar函数的语法如下:
```
getchar();
```
该函数不需要参数,每次调用会从输入流中读取一个字符并返回其ASCII码值。
需要注意的是,在使用scanf函数时,由于输入缓冲区的存在,可能会出现一些意外情况。例如,如果在读取一个字符串后,直接使用getchar函数读取单个字符,可能会读取到之前输入字符串时留下的回车符。因此,建议在使用scanf函数读取数据时,使用getchar函数将缓冲区中的回车符清空。可以使用下面的代码实现:
```
while(getchar() != '\n');
```
这行代码会将输入缓冲区中的所有字符都读取并丢弃,直到读取到回车符为止。
阅读全文