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