C++ 编程/代码/标准 C 库/函数/scanf
外观
语法 |
#include <cstdio>
int scanf( const char *format, ... );
|
scanf() 函数根据给定的格式从 stdin 读取输入,并将数据存储在其他参数中。它的工作方式与 printf() 非常类似。格式字符串包含控制字符、空格字符和非空格字符。控制字符以 % 符号开头,如下所示
控制字符 | 解释 |
---|---|
%c | 单个字符 |
%d | 十进制整数 |
%i | 整数 |
%e, %f, %g | 浮点数 |
%lf | 双精度浮点数 |
%o | 八进制数 |
%s | 字符串 |
%x | 十六进制数 |
%p | 指针 |
%n | 等于到目前为止读取的字符数的整数 |
%u | 一个 无符号 整数 |
%[] | 一组字符 |
%% | 百分号 |
scanf() 读取输入,匹配来自格式的字符。当读取到控制字符时,它会将值放入下一个变量。空格(制表符、空格等)会被跳过。非空格字符会与输入匹配,然后被丢弃。如果在 % 符号和控制字符之间有数字,那么只有这么多字符会被转换成变量。如果 scanf() 遇到一组字符,由 %[] 控制字符表示,那么在括号内找到的任何字符都会被读入变量。scanf() 的返回值是成功赋值的变量数量,或者如果出现错误则为 EOF。
此代码片段使用 scanf() 从用户读取一个 int、一个 float 和一个 double。请注意,传递给 scanf() 的变量参数是按地址传递的,如每个变量之前的符号(&)所示
int i;
float f;
double d;
printf( "Enter an integer: " );
scanf( "%d", &i );
printf( "Enter a float: " );
scanf( "%f", &f );
printf( "Enter a double: " );
scanf( "%lf", &d );
printf( "You entered %d, %f, and %f\n", i, f, d );