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函数(用于分配内存),以便正确输出字符串的长度和内容。