C语言输入格式
C语言是一种广泛使用的计算机编程语言,它提供了丰富的输入输出功能,使得程序员可以轻松地与用户进行交互,在C语言中,输入格式主要包括以下几种:
1、格式化输入
格式化输入是指按照指定的格式从键盘读取数据,在C语言中,可以使用scanf
函数进行格式化输入。scanf
函数的原型如下:
int scanf(const char *format, ...);
format
是一个字符串,用于指定输入数据的格式;后面的省略号表示可以接受可变数量的参数,这些参数将按照指定的格式接收输入数据。
下面是一些常用的格式化输入符号:
- %d
:读取整数
- %ld
:读取长整数(在Windows系统中为%I64d
)
- %f
:读取浮点数
- %lf
:读取双精度浮点数(在Windows系统中为%lf
)
- %c
:读取字符
- %s
:读取字符串
下面的代码将从键盘读取一个整数、一个浮点数和一个字符串:
#include <stdio.h> int main() { int a; float b; char str[100]; printf("请输入一个整数、一个浮点数和一个字符串:"); scanf("%d %f %s", &a, &b, str); printf("你输入的整数是:%d ", a); printf("你输入的浮点数是:%f ", b); printf("你输入的字符串是:%s ", str); return 0; }
2、非格式化输入
非格式化输入是指按照实际输入的数据类型读取数据,在C语言中,可以使用getchar
、getc
和gets
函数进行非格式化输入,这些函数的原型如下:
int getchar(); int getc(FILE *stream); char *gets(char *str);
getchar
函数从键盘读取一个字符;getc
函数从指定的文件流中读取一个字符;gets
函数从键盘读取一行字符串。
下面的代码将从键盘读取一个字符和一个字符串:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char ch; char str[100]; printf("请输入一个字符和一个字符串:"); ch = getchar(); // 读取一个字符 gets(str); // 读取一行字符串 printf("你输入的字符是:%c ", ch); printf("你输入的字符串是:%s ", str); return 0; }
3、混合输入格式
混合输入格式是指在一个程序中同时使用格式化输入和非格式化输入,在C语言中,可以使用空格、制表符和回车符等空白字符作为分隔符,将这些不同类型的输入分开,下面的代码将从键盘读取一个整数、一个浮点数和一个字符串:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> // 使用pow函数计算平方根,需要包含此头文件 int main() { int a; float b; char str[100]; double result; // 用于存储计算结果的变量,需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int power; // 用于存储用户输入的指数值的变量,需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int valid_input = 0; // 用于判断用户是否输入了有效的指数值,需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int i; // 用于循环遍历字符串中的每个字符,需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int len; // 用于存储字符串的长度,需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int is_number; // 用于判断当前字符是否为数字,需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int is_exponent; // 用于判断当前字符是否为指数符号(^),需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int is_dot; // 用于判断当前字符是否为小数点(.),需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int is_sign; // 用于判断当前字符是否为正负号(+/-),需要提前声明并初始化为0或NaN(非数字)值,以避免未定义行为 int is_digit; // 用于判断当前字符是否为数字字符(0-9),需要提前声明并初始化为0或NaN(非数字)值,以避免未 defined behavior行行为