C 中变量后的新行

Cod*_*sic -2 c variables printf newline

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

\n

这是我的源代码:

\n
int main() {\n    int xD = 21;\n    printf(xD\\n);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我在编译时收到了这个:

\n
int main() {\n    int xD = 21;\n    printf(xD\\n);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我该如何修复它?

\n

Mil*_*ntz 5

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

即使您删除了\n,尝试也会printf(xd)要求printf()将 xd (整数)视为格式字符串 - 这对您不起作用。事实上,C 可能会尝试对xdto进行隐式转换const char*。您要求printf()将“位于地址 21 的字符数组”解释为格式字符串(几乎可以肯定那里没有格式字符串)。

你真正想说的是:

printf("%d\n", xd);
Run Code Online (Sandbox Code Playgroud)