📜  接受输入的语法 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:25:56.229000             🧑  作者: Mango

接受输入的语法 - C 编程语言

在 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);

在上述代码中,我们接受了两个整数,并将它们分别存储到 num1num2 变量中。

需要注意的是,输入的数据中每个数值之间应该用空格或者换行符来分隔,否则 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 编程语言中接受输入的基本语法和一些注意事项。