void F (char []);
int main( )
{
int i = 2;
F ("my number is %d",i)
}
void F (char c[])
{
printf("%s",c);
printf("\n");
}
答案 0 :(得分:1)
您只使用一个输入参数定义F
,但您要传递两个参数:"my number is %d"
和i
。这可能是自然的,因为它是您在使用printf
命令时所做的,但它实际上与您对定义函数的了解相反。这就是你真正想要的东西
void F (const char* c, int i);
int main( ) {
int i = 2;
F ("my number is", i);
}
void F (const char* c, int i) {
printf("%s %d\n", c, i);
}
答案 1 :(得分:0)
您需要构建一个字符串以传递给F
。 sprintf函数对此很有用。
以下是一个例子:
int x = 10;
char buffer[128] = { '\0' };
sprintf(buffer, "The number is %d", i);
现在,buffer
包含"数字为10"。