gpt4 book ai didi

c++ - 为什么 C++ 编译器不在下一行输出文本,而在其间放置空格时却输出文本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:21 26 4
gpt4 key购买 nike

这似乎是一个重复的问题,但实际上它完全不同,因为其他问题没有完全回答我的问题。我的问题是,为什么 c++ 编译器不输出下一个文本行,但当我在两个文本之间输入无限空格直到下一行时它会执行。就像我这样写:

 #include<iostream>
using namespace std;
main()
{
cout<<"hi
i am the king";//i have not included spaces after "hi"
}

它显示错误:缺少终止符。好吧,我知道我必须在下一行的引号中包含文本,但不应将其视为空白,因为它是 换行符

如果我写同样的东西,包括这样的空格:

#include<iostream>
using namespace std;
main()
{
cout<<"hi
i am the king";//i have included spaces after "hi" up to the next line
}

但它没有显示错误,为什么编译器在这里将空格视为空格,而不是第一个代码中的换行符。如果我没有说清楚,我欢迎提出详细说明问题的建议。谢谢!

最佳答案

因为根据语言规范,这就是 C++ 编译器的工作方式。编译器对空格字符和换行符的处理方式不同,即使它们都是空白字符。

编译器的行为在“翻译阶段”部分的语言规范中进行了描述。编译器需要分别处理每一行。您可以要求它通过在行尾使用 \ 将多行拼接成一行。编译器不会自动缝合行,除非您明确要求它这样做。

不清楚您所说的“我在“hi”之后到下一行包含了空格”是什么意思。如果您只包含空格,那么您就没有“下一行”。要开始一个新行,您必须包含一个换行符。

关于c++ - 为什么 C++ 编译器不在下一行输出文本,而在其间放置空格时却输出文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17268946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com