C中变量后的新行

3pvhb19x  于 2023-05-16  发布在  其他
关注(0)|答案(3)|浏览(125)

在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);
       ^~

我该怎么解决?

bvk5enib

bvk5enib1#

这里有两个问题:1. printf()期望第一个参数是指定格式的const char*字符串。2.编译器不知道如何在字符串(引号)之外解释\n。这就是阻止它编译的原因。
即使您删除了\n,尝试printf(xd)也会要求printf()将xd(整数)视为格式字符串--这对您来说是行不通的。事实上,C可能会尝试将xd隐式转换为const char*。您要求printf()将“位于地址21的字符数组”解释为格式字符串(几乎可以肯定那里没有格式字符串)。
你真正想说的是

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

lf3rwulv2#

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

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

nkcskrwz3#

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

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

相关问题