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


当前回答

自从visual Studio 2022 17.1以来,有一个内置的功能可以在保存时运行代码格式化(参见devblogs.microsoft),这意味着不需要安装像保存时格式化文档这样的扩展。

其他回答

剪切/粘贴是另一种快速的方法(而且容易记住)。

已接受答案中提供的解决方案不适用于Microsoft Visual Studio 2012。

在Visual Studio 2012中,快捷方式是:

对于高亮显示的代码块: Ctrl + K, Ctrl + F 对于文档范围的格式化: Ctrl + K, Ctrl + D

Visual Studio 2010/2013/2015/2017/2019

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

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

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

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

如果你正在使用JetBrains ReSharper,格式化你的代码最简单的方法是使用CTRL + ALT + ENTER快捷键(重新格式化代码)。

#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);
}