我知道Visual Studio可以自动格式化,使我的方法和循环缩进正确,但我找不到设置。


当前回答

进入菜单工具→扩展和更新,在搜索中输入“生产力”: 安装“生产力电动工具2015” 重新启动Visual Studio。 进入菜单工具→选项→生产力电动工具→电源命令,选择“保存时格式化文档”:

注意:在VS2022中,我们没有电源命令。

如果有人想有“格式文件保存”和“删除和排序使用保存”安装MadsKristensen扩展VS2022 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.CodeCleanupOnSave 安装这个扩展后,它会自动“格式化文件保存”,“删除和排序使用保存”和“应用文件头首选项”。 如果我们想自定义默认设置,点击“配置代码清理”菜单项来添加/删除任何可用的修复程序。

其他回答

在Windows中是Shift + Alt + F。

但是你可以通过下面的步骤来检查。

进入菜单视图→命令面板或按Ctrl + Shift + P 搜寻格式文件 你可以按下自动格式化代码或它的热键,写在它前面。

您还可以尝试右击菜单(上下文菜单)选项来格式化编码文档的选择。看看下面的截图:

遵循以下步骤:

转到菜单工具 进入选项 转到文本编辑器选项 单击您选择的语言。我以c#为例。

请看下图:

Visual Studio 2010/2013/2015/2017/2019

格式文档(Ctrl+K,Ctrl+D),即按住Ctrl,按下释放K,然后按下D,因为它是一个序列 格式选择(Ctrl+K,Ctrl+F)

工具栏编辑->高级(如果看不到高级,请在解决方案资源管理器中选择一个代码文件,然后重试)

你的快捷方式可能显示不同于我的,因为我设置了c#编码,但通过工具栏导航会让你到你的。

如果它不起作用,在你的代码中寻找错误,比如缺少括号使自动格式无法工作

#include "stdafx.h"
#include <stdio.h>


int main(){
    char filename[15];

    printf("Enter file name:");
    scanf("%s", filename);
    Automat(filename);
    freq(filename);
}

int Automat(char filename[]){

    FILE*fp;
    char c;
    int state = 1;
    int duma = 0;
    fp = fopen(filename, "r");
    if (fp == NULL){
        printf("Error");
        system("pause");
    }
    while (!feof(fp)){
        c = fgetc(fp);

        switch (state){
        case 1:
            if (c == '\t' || c == '\n' || c == ' '){
                state = 3;
                break;
            }
        case 2:
            if (c >='A'|| c<='Z'){
                break;
            }

        case 3: duma++;
            state = 1;
            break;
        }
    }
    printf("Broq e : %d\n", duma);
    return 1;
}
int freq(char filename[]){

    FILE*fp;
    char c;
    int state = 1, sequence = 0;
    fp = fopen(filename, "r");
    if (fp == NULL){
        printf("Error");
        system("pause");
    }



    while (!feof(fp)){
        c = fgetc(fp);
        switch (state){
        case 1:
            if (c >= 'A' && c <= 'Z'){
                state = 2;
                break;
            }

        case 2:
            if (c == '\t' || c == '\n'||c == ' '){
                sequence++;
                state = 1;
                break;

            }
        }

    }
    printf("Sequence is : %d\n", sequence);
}