我有一个非常简单的程序,预计会从用户那里获取较少的 X 字符并将其打印回来:
#include <stdio.h>
#define MAX_INPUT_LENGTH 8
#define HOME 1
int main()
{
char vstup[MAX_INPUT_LENGTH];
printf("Write something. But no more than "MAX_INPUT_LENGTH" characters.\n");
scanf("%"MAX_INPUT_LENGTH"s", vstup);
printf(vstup);
system("pause");
return 0;
}
当然,我对"blah"CONSTANT"blah"
的尝试不起作用。但应该离开去做,不应该吗?我认为常量大多只是程序中被替换的文本片段,只有一些基本逻辑。
答案 0 :(得分:6)
这适合我。
#include <stdio.h>
#define STR2(a) #a
#define STR(a) STR2(a)
#define MAX_INPUT_LENGTH 8
int main()
{
char vstup[MAX_INPUT_LENGTH+1];
printf("Write something. But no more than " STR(MAX_INPUT_LENGTH) " characters.\n");
scanf("%" STR(MAX_INPUT_LENGTH) "s", vstup);
printf("%s\n", vstup);
return 0;
}
答案 1 :(得分:-1)
这是我的版本:
int max;
char frmt[10];
memset( frmt, 0, sizeof( frmt ) );
printf( "Enter a number:" );
scanf( "%d", &max );
char vstup[max];
printf( "Write something. But no more than %d characters.\n", max );
frmt[0] = '\%';
sprintf( frmt + strlen( frmt ), "%ds", max );
scanf( frmt, vstup );
printf( vstup );