switch语句的格式

BWG*_*BWG 8 c++ indentation visual-studio-2013

假设我将光标位置放在右侧大括号的右侧,如下所示:

在此输入图像描述

现在,如果我按回车键,我希望它将光标自动对齐两个标签,就像break声明一样.但它的作用是:

在此输入图像描述

它增加了一个荒谬的五个标签!知道Visual Studio有一公吨的设置,我导航到Tools::Settings::Text Editor::C/C++::Formatting::Indentation,并看到以下窗口:

在此输入图像描述

但是,更改任何组合中突出显示的选项实际上并不会影响缩进!似乎没有其他选项适用于switch语句,所以我不知道该怎么做.如何在不禁用自动格式化的情况下使其缩进5个空格?

我可以补充说,当我在大括号的末尾按Enter时,它不仅会放置5个标签,而且会发生任何自动格式化事件.因此,当我在一行的末尾添加一个分号时,即使我之前将它们取出,它也会放置5个标签.

Jos*_*aun 1

我进入 VS2013 并创建了一个新项目,只是尝试制作一个非常简单的项目switch,但它的格式对我来说是正确的,即使使用花括号也是如此。你能发布那组代码吗?

我唯一能想到的另一件事可能是如何设置大括号的设置,但我不知道为什么这会影响它。(我也不认为 C++ 确实有这样的设置...)除此之外,尽管您可以尝试根本不使用大括号,因为您位于语句内case,但从技术上讲您并不需要它们。

除此之外,安装过程中可能发生了一些事情。所以重新安装也是一个选择。

编辑:
另外,也可以继续执行并完成代码,然后完成后只需突出显示行并取消缩进([SHIFT]+[TAB])它们回到正确的位置。

  • 这确实很奇怪。我自己创建了一个新项目,其格式如我的示例中所示,所以我知道这不是一些奇怪的项目设置。我一直讨厌 switch 语句,但我想我应该尝试一下。现在我们知道结果如何了。我将只使用一组“else/if”来代替。螺丝开关语句! (2认同)