📅  最后修改于: 2023-12-03 15:25:56.229000             🧑  作者: Mango
在 C 编程语言中,我们通过使用 scanf
函数来接受输入。scanf
函数的原型如下:
int scanf(const char *format, ...);
其第一个参数是一个字符串,称为格式字符串,它指定了我们接受输入数据的格式。
例如,如果我们想要接受输入一个整数,并存储在变量 num
中,我们可以使用以下代码:
int num;
scanf("%d", &num);
其中,%d
为格式字符串,表示我们要接受一个整数。而 &num
是变量 num
的地址,用于将输入的整数存储到 num
变量中。
当我们需要接受多个数据时,可以将多个格式字符串作为参数传递给 scanf
函数,如下所示:
int num1, num2;
scanf("%d %d", &num1, &num2);
在上述代码中,我们接受了两个整数,并将它们分别存储到 num1
和 num2
变量中。
需要注意的是,输入的数据中每个数值之间应该用空格或者换行符来分隔,否则 scanf
函数无法正确地读取输入。
另外,scanf
函数会自动跳过任何连续的空格或回车,直到找到下一个非空格或非回车字符。如果输入的数据中包含了换行符,scanf
函数会将换行符视为有效字符,并将其作为输入数据的一部分。因此,在读取换行符之前,一定要将其清除。
我们也可以通过使用 fgets
函数来接受输入,如下所示:
char str[100];
fgets(str, 100, stdin);
这里,stdin
表示标准输入流。fgets
函数将从标准输入流中读取最多 100
个字符,并将它们存储到字符数组 str
中。如果输入数据超过了 100
个字符,则只会读取前 100
个字符。
需要注意的是,在使用 fgets
函数时,我们需要额外考虑输入数据中的换行符问题。通常情况下,我们需要将输入数据中的换行符替换为字符串的结尾符 \0
。如下所示:
char str[100];
fgets(str, 100, stdin);
str[strlen(str) - 1] = '\0';
在上述代码中,strlen
函数会返回字符串 str
的长度,即字符数组 str
中最后一个字符的下标加上 1
。由于最后一个字符是换行符,我们需要将其替换为字符串的结尾符 \0
,即将 str[strlen(str) - 1]
赋值为 \0
。
在接受输入时,我们也需要避免输入数据不符合我们要求的情况。例如,如果我们要接受一个整数,而输入的数据中包含了非数字字符,scanf
函数会返回 0
,表明读取失败。我们可以通过判断 scanf
函数的返回值,来处理读取失败的情况。
int num;
if (scanf("%d", &num) != 1) {
printf("Invalid input.\n");
}
当 scanf
函数返回的值不为 1
时,表示读取失败,我们可以输出一条相应的错误信息。
以上就是在 C 编程语言中接受输入的基本语法和一些注意事项。