您的位置:

使用scanf函数在C++中读取输入

在C++编程中,有时需要从用户输入中获取一些数据,这时,我们就需要使用scanf函数来读取输入。scanf函数是一个标准库函数,它可以从标准输入流中读取数据,并将其格式化输出,具体使用方法如下。

一、scanf函数的格式化输入

scanf函数的格式化输入有以下几种常见的用法: 1. 读取整数 格式:`%d` 示例代码:
#include 
int main() {
    int num;
    scanf("%d", &num);
    printf("输入的数字是:%d", num);
    return 0;
}

  
2. 读取浮点数 格式:`%f` 示例代码:
#include 
int main() {
    float num;
    scanf("%f", &num);
    printf("输入的数字是:%f", num);
    return 0;
}

  
3. 读取字符串 格式:`%s` 示例代码:
#include 
int main() {
    char str[100];
    scanf("%s", str);
    printf("输入的字符串是:%s", str);
    return 0;
}

  
4. 读取字符 格式:`%c` 示例代码:
#include 
int main() {
    char ch;
    scanf("%c", &ch);
    printf("输入的字符是:%c", ch);
    return 0;
}

  

二、scanf函数的返回值

scanf函数的返回值表示成功读取输入的数据的个数,如果读取失败则返回EOF(-1),我们可以通过返回值来判断是否读取成功。例如,如果我们要读取两个整数,可以这样写代码:
#include 
int main() {
    int a, b;
    int n;
    n = scanf("%d %d", &a, &b);
    if (n != 2) {
        printf("输入不合法!");
        return 0;
    }
    printf("a=%d, b=%d", a, b);
    return 0;
}

  

三、scanf函数的安全问题

在使用scanf函数时要注意输入缓冲区的长度,以防止缓冲区溢出导致程序崩溃。同时,我们也要避免使用scanf函数读取比缓冲区更大的输入数据,因为这会导致数据的截断。

四、scanf函数的格式化输入示例

下面是一些scanf函数格式化输入的示例代码,供大家参考: 1. 读取整数,计算其平方与立方:
#include 
int main() {
    int n;
    scanf("%d", &n);
    printf("平方:%d\n立方:%d", n * n, n * n * n);
    return 0;
}

  
2. 读取浮点数,计算其平方与立方:
#include 
int main() {
    float n;
    scanf("%f", &n);
    printf("平方:%f\n立方:%f", n * n, n * n * n);
    return 0;
}

  
3. 读取两个整数,计算它们的和与差:
#include 
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("和:%d\n差:%d", a + b, a - b);
    return 0;
}

  

五、总结

scanf函数是一个十分常用的函数,用于读取控制台输入,可以读取整数、浮点数、字符串和字符等,使用非常方便。但是,在实际使用中要注意安全问题,避免数据溢出和截断。