【发布时间】:2018-02-25 16:54:13
【问题描述】:
通常,我使用定义来定义字符串的大小,但是当我使用scanf() 时,我想防止函数读取太多字符(并为空终止符保留空间)。我想知道是否可以使用我的定义而不是硬编码的幻数来做到这一点......
#include <stdio.h>
#define MAXLEN 4
int main(void) {
char a[MAXLEN];
scanf("%3s", a); // Can I do that with 'MAXLEN' somehow?
}
有可能吗?如果是,怎么做?
【问题讨论】:
-
使用 MAXLEN 3;然后定义
char a[MAXLEN + 1] -
我已经链接到副本了,但是你为什么不使用
fgets()和sscanf()呢? -
我可以,但我想知道
scanf()@IharobAlAsimi,谢谢! -
@gsamaras 我在原始问题中发布了另一个解决方案(我在此处发布但已关闭)
标签: c arrays string scanf c-preprocessor