0

如何限制数组接受的字符输入size-1scanf?就像 char a[10] 一样,只需要 9 个字符。有没有可能。并在哪个头文件中snprintf定义?它是编译器特定的吗?让我知道它的头文件。

4

1 回答 1

0

如何使用 scanf 限制数组 size-1 接受的字符输入数?就像 char a[10] 一样,只需要 9 个字符。有没有可能。

可以指定最大字段宽度,但这可能不是您想要的。我将从%s格式指令派生出我的示例。只需将宽度(十进制数字)放在%和之间s,例如"%9s"指示 scanf 读取和复制不超过 9 个字符。请记住,%s指示scanf读取输入的单词,不一定是line。一旦遇到空白字符,它就会停止将输入复制到您的数组中。

char a[10];

/* TODO: Handle scanf errors */
assert(scanf("%9s", a) == 1);

snprintf 定义在哪个头文件中?

<stdio.h>.

它是编译器特定的吗?

有两种类型的 C99 编程实现。独立实现不需要<stdio.h>,因此从技术上讲snprintf,这些环境中不需要存在。但是,您很可能正在使用托管实现。托管实现需要snprintf<stdio.h>.

于 2013-04-27T18:13:39.170 回答