这个问题已经有了答案:
Concatenate int to string using C Preprocessor
3答
我有一个非常简单的程序,它需要从用户那里取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"的尝试不起作用。但是应该有机会去做,不是吗?我认为常量在程序中大部分只是用一些基本的逻辑来替换文本片段。

最佳答案

这对我有用。

#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;
}

09-13 12:53