关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
去年关闭。
Improve this question
我最近遇到过几次这种情况。我无法找出导致它的原因,但是如果有一行带有 cout
就会发生这种情况。陈述。当然,并非总是如此,这有点罕见,但是当它发生时,它是由以 cout
开头的行引起的。 .
它是这样工作的:在“错误”之后 cout
行,Xcode 会自动将代码缩进一两级。每次我按回车键开始写新行时,代码都会不必要地缩进。代码本身没有任何问题,没有语法错误或任何其他问题。只是一个简单的cout << someString << endl;
线。但是如果我去掉那行,或者把它注释掉,Xcode 会使用适当的缩进量,所以一切都会恢复正常。如果我取消注释,以下几行的缩进将再次搞砸。即使我删除了整个代码部分并重新编写它(以防其中有一个时髦的隐形 unicode 字符或其他东西),也会发生同样的事情。
最烦人的是,这不能很容易地重现。我经常编写 C++ 代码,并且在完全不相关的上下文中(不同的项目、不同类型的代码等)只遇到过两三次这种情况。唯一的共同点是它总是一个 cout
与以下行的缩进混淆的语句。
顺便说一句,我最近在我的 mac 上全新安装了 OS X,并从 Mac App Store 下载了一个新的 Xcode 拷贝,所以我认为没有任何损坏或其他东西。
有没有其他人注意到这一点?我似乎无法在互联网上找到任何类似的内容。我应该就此事联系Apple吗?
编辑 (2015. 11. 29.):
该问题在 OS X 10.11.1 上的 Xcode 7.1.1 中仍然存在。这是一张图片:
如您所见,cout
后面的行的缩进线路乱了即使我选择整段代码并选择“重新缩进”,Xcode 也不会修复它。事实上,即使我手动修复它,“重新缩进”选项也会将其恢复到这种困惑状态。同样,这发生在我完全不同的项目中,所有项目都是在不同时间在不同版本的 Xcode 上创建的。自从我最初发布这个问题以来,我已经重新安装了 OS X(干净!),并且事情没有改变。这就是为什么我确定这是 Xcode 本身的某种错误。
最佳答案
我可以确认这个错误仍然存在于 Xcode 版本 9.3 (9E145) 中。考虑以下测试代码片段:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
class Date
{
private:
int Day;
int Month;
int Year;
string DateInString;
public:
Date(int InputDay, int InputMonth, int InputYear):
Day (InputDay), Month (InputMonth), Year (InputYear) {};
operator const char*()
{
ostringstream formattedDate;
formattedDate << Day << " / " << Month << " / " << Year;
DateInString = formattedDate.str();
return DateInString.c_str();
}
};
int main()
{
Date Holiday (25, 12, 2011);
cout << "Holiday is on: " << Holiday << endl;
return 0;
}
formattedDate << Day << " / " << Month << " / " << Year;
导致错误的缩进。注释掉后,Xcode 可以正确地重新缩进代码。
关于c++ - Xcode 中的缩进错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189254/