面试题答案
一键面试#include <stdio.h>
int main() {
int num;
float f;
char ch;
// 使用scanf获取用户输入
printf("请输入一个整数、一个浮点数和一个字符,中间用空格隔开:\n");
scanf("%d %f %c", &num, &f, &ch);
// 使用printf输出变量的值
printf("整数 num: %d\n", num);
printf("浮点数 f: %.2f\n", f);
printf("字符 ch: %c\n", ch);
return 0;
}
如果scanf()
中格式控制字符串与输入数据类型不匹配,可能出现以下情况:
- 数据读取错误:例如,使用
%d
读取一个非整数(如字符),scanf
将无法正确读取数据,导致变量的值可能是未初始化的垃圾值。 - 输入流混乱:错误的格式匹配可能使输入流中的数据没有被正确消耗,影响后续
scanf
操作。例如,在期望读取整数时输入了字符,该字符可能会残留在输入流中,影响下一个scanf
操作的正常读取。 - 返回值异常:
scanf
函数返回成功匹配并赋值的输入项数。当格式不匹配时,返回值可能小于预期,通过检查返回值可以判断scanf
操作是否成功。