通常は文字列のサイズを定義していますが、scanf()
を使用すると、関数があまりにも多くの文字を読み込むことを防ぎたい(そしてヌルターミネータのためのスペースを確保する)必要があります。私はハードコードされた魔法の数字の代わりに私の定義を使ってこれを行うことができるかどうか疑問に思っていました...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