C变量后的新行

时间:2018-08-30 03:11:24

标签: c variables printf newline

又是我,菜鸟程序员。

在C语言中,我尝试在变量后执行\ n。

这是我的源代码:

int main() {
    int xD = 21;
    printf(xD\n);
}

在编译时会收到此消息:

new 1.c: In function ‘main’:
new 1.c:5:11: error: stray ‘\’ in program
printf(xd\n);
       ^
new 1.c:5:12: error: expected ‘)’ before ‘n’
printf(xd\n);
        ^
new 1.c:5:9: warning: format not a string literal and no format 
arguments [-Wformat-security]
printf(xd\n);
       ^~

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

这里有两个问题: 1. printf()期望第一个参数是指定格式的const char*字符串。 2.编译器不知道如何在字符串(引号)之外解释\n。这就是阻止它编译的原因。

即使您删除了\n,尝试printf(xd)仍要求printf()将xd(一个整数)视为格式字符串-但这对您不起作用。实际上,C可能会尝试进行从xdconst char*的隐式转换。您要让printf()将“位于地址21处的字符数组”解释为格式字符串(而且几乎肯定没有格式字符串)。

您真正想说的是:

printf("%d\n", xd);

答案 1 :(得分:1)

printf函数需要一个格式参数来标识变量xD的类型。由于xD是整数,因此必须使用“%d”作为格式参数。

printf("%d\n", xD);

答案 2 :(得分:0)

您错过了要格式化的字符串:

printf("%d\n",xD);