c语言scanf输出字符

C语言scanf函数是用于从标准输入设备(通常是键盘)读取数据的,它可以读取各种类型的数据,如整数、浮点数、字符等,scanf函数的原型如下:

(图片来源网络,侵删)
int scanf(const char *format, ...);

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

下面是一些使用scanf函数的示例:

1、读取整数:

#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);
    printf("你输入的整数是:%d
", num);
    return 0;
}

在这个示例中,我们使用%d作为格式说明符,表示要读取一个整数。&num是一个指向变量num的指针,用于存储输入的整数。

2、读取浮点数:

#include <stdio.h>
int main() {
    float fnum;
    printf("请输入一个浮点数:");
    scanf("%f", &fnum);
    printf("你输入的浮点数是:%f
", fnum);
    return 0;
}

在这个示例中,我们使用%f作为格式说明符,表示要读取一个浮点数,同样,我们使用&fnum来存储输入的浮点数。

3、读取字符:

#include <stdio.h>
int main() {
    char ch;
    printf("请输入一个字符:");
    scanf(" %c", &ch); // 注意前面的空格,用于跳过空白字符(如换行符、制表符等)
    printf("你输入的字符是:%c
", ch);
    return 0;
}

在这个示例中,我们使用%c作为格式说明符,表示要读取一个字符,注意,我们在格式字符串前面加了一个空格,用于跳过空白字符,这是因为在输入字符时,如果用户先输入了一个空白字符(如换行符、制表符等),scanf函数会立即返回,导致后面的代码无法执行,通过添加一个空格,我们可以确保只有当用户输入一个非空白字符时,scanf函数才会读取它。

4、读取多个数据:

#include <stdio.h>
int main() {
    int a, b;
    float x, y;
    char c, d;
    printf("请输入两个整数、两个浮点数和一个字符:");
    scanf("%d %d %f %f %c %c", &a, &b, &x, &y, &c, &d); // 注意这里的逗号和空格,用于分隔不同的数据类型和变量名
    printf("你输入的两个整数是:%d %d
", a, b);
    printf("你输入的两个浮点数是:%f %f
", x, y);
    printf("你输入的两个字符是:%c %c
", c, d);
    return 0;
}

在这个示例中,我们使用逗号和空格来分隔不同的数据类型和变量名,这样,scanf函数就可以正确地将输入的数据分配给相应的变量,注意,我们需要为每个变量提供一个地址操作符(如&),以便scanf函数可以将数据存储在变量中。

5、读取字符串:

#include <stdio.h>
#include <string.h> // 引入string.h头文件,以使用strlen函数和malloc函数(用于分配内存)
int main() {
    char str[100]; // 定义一个字符数组,用于存储输入的字符串
    printf("请输入一个字符串:");
    scanf("%s", str); // 使用%s作为格式说明符,表示要读取一个字符串(直到遇到空白字符为止)
    printf("你输入的字符串是:%s", str); // 输出字符串的长度和内容(不包括最后的空字符)
    return 0;
}

在这个示例中,我们使用%s作为格式说明符,表示要读取一个字符串,由于scanf函数只会读取空白字符之前的内容,所以我们需要提前定义一个足够大的字符数组来存储输入的字符串,我们还使用了string.h头文件中的strlen函数和malloc函数(用于分配内存),以便正确输出字符串的长度和内容。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。