您的位置:

使用C++ scanf函数读取标准输入并返回值

一、scanf函数的概述

scanf是C/C++语言中用于格式化输入的函数,它是为了读取特定类型数据而设计的。使用 scanf 函数可以向程序输入多种类型的数据,包括整数、实数、字符等等。基本形式是:scanf(Template, pointed strings)。其中的Template是格式控制字符串,pointed strings是要输入的数据。

二、读取不同数据类型

scanf函数可以读入不同的数据类型,比如整型、浮点型、字符型、字符串等等。

1. 读取整型数值

int num;
scanf("%d", &num);

2. 读取浮点型数值

float f1;
double d1;
scanf("%f", &f1);
scanf("%lf", &d1);

3. 读取字符型

char c;
scanf("%c", &c);

4. 读取字符串

char s[10];
scanf("%s", s);

三、输入多个数值

scanf函数可以输入多个变量,每个变量用逗号隔开。

int a, b, c;
scanf("%d,%d,%d", &a, &b, &c);

四、输入格式控制字符

在格式控制字符串中,可以使用多种格式控制符来控制输入的格式,如:

1. %d:表示输入的是十进制整数。

int num;
scanf("%d", &num);

2. %f:表示输入的是浮点型数值。

float f1;
double d1;
scanf("%f", &f1);
scanf("%lf", &d1);

3. %c:表示输入的是字符。

char c;
scanf("%c", &c);

4. %s:表示输入的是字符串。

char s[10];
scanf("%s", s);

5. %%:表示输入一个百分号。

printf("%%");

五、输入错误的处理

在输入错误的时候,scanf会返回一个非零的值,表示成功读入的变量数目。可以通过这个值来判断是否读入了正确的变量数量。

int n;
while (scanf("%d", &n) != EOF)
{
    if (n == 0)
        printf("输入错误!\n");
    else
        printf("输入正确!\n");
}

六、输入结束符

在标准输入中,可以通过输入“Ctrl+Z”按钮或者输入文件达到输入结束符的效果。在程序中,可以通过检查 scanf 的返回值是否等于 EOF 来判断是否达到了输入的结束符。

int n, score, sum = 0;
while (scanf("%d,%d", &n, &score) != EOF)
{
    printf("学生%d的分数是:%d\n", n, score);
    sum += score;
}
printf("总分数是:%d\n", sum);

七、总结

scanf函数是一个很有用的输入函数,可以输入不同的数据类型以及多个变量。同时,通过掌握格式控制符和处理输入错误的方法,我们可以更好地使用这个函数。