当前位置:首页 > 行业动态 > 正文

c语言中scanf怎么用

在C语言中,scanf函数是一个用于从标准输入(通常是键盘)读取数据的函数,它的主要作用是将用户输入的数据转换为程序可以处理的格式,scanf函数的原型如下:

int scanf(const char *format, ...);

format是一个字符串,用于指定输入数据的格式,...表示可变参数列表,用于存储输入数据,scanf函数返回成功匹配并赋值的参数个数。

下面是一些常见的scanf函数用法示例:

1、基本数据类型:

#include <stdio.h>
int main() {
    int a;
    double b;
    char c;
    printf("请输入一个整数、一个浮点数和一个字符,用空格隔开:");
    scanf("%d %lf %c", &a, &b, &c);
    printf("你输入的整数是:%d
", a);
    printf("你输入的浮点数是:%lf
", b);
    printf("你输入的字符是:%c
", c);
    return 0;
}

2、字符串:

#include <stdio.h>
#include <string.h>
int main() {
    char str[100];
    printf("请输入一个字符串:");
    scanf("%s", str);
    printf("你输入的字符串是:%s
", str);
    return 0;
}

3、使用占位符:

#include <stdio.h>
int main() {
    int a;
    double b;
    char c;
    char str[100];
    printf("请输入一个整数、一个浮点数、一个字符和一个字符串,用空格隔开:");
    scanf("%d %lf %c %s", &a, &b, &c, str);
    printf("你输入的整数是:%d
", a);
    printf("你输入的浮点数是:%lf
", b);
    printf("你输入的字符是:%c
", c);
    printf("你输入的字符串是:%s
", str);
    return 0;
}

4、跳过空白字符:使用" %*c"可以跳过空白字符,只读取非空白字符。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
    char str[100];
    int i = 0;
    char ch;
    printf("请输入一个字符串:");
    while ((ch = getchar()) != '
') { // 读取一行字符,直到遇到换行符为止
        if (!isspace(ch)) { // 如果当前字符不是空白字符,则将其添加到字符串中,并更新索引i和str的长度计数器strlen_max(如果有的话)的值,注意,这里使用了strlen_max而不是strlen,因为strlen会修改字符串的长度计数器,如果需要使用strlen,可以先将字符串复制到另一个数组中,然后再使用strlen,还需要注意检查是否会发生缓冲区溢出,如果发生缓冲区溢出,程序可能会崩溃或表现出未定义的行为,在编写涉及缓冲区的代码时,务必小心谨慎。
0