跳转至内容

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 );
相关主题
fgets - fscanf - printf - sscanf
华夏公益教科书