这是一个基本的 C 语言代码,用于实现上述功能:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
// 确保传入了文件名
if (argc < 2) {
printf("用法:%s 文件名\n", argv[0]);
return 1;
}
// 打开文件
FILE *fp = fopen(argv[1], "r");
if (fp == NULL) {
printf("无法打开文件:%s\n", argv[1]);
return 1;
}
// 读取文件内容
char *code = malloc(1);
int size = 0;
int c;
while ((c = fgetc(fp)) != EOF) {
code[size++] = (char)c;
code = realloc(code, size + 1);
}
// 处理换行和缩进
int indent = 0;
for (int i = 0; i < size; i++) {
if (code[i] == '{') {
printf("{\n");
indent++;
for (int j = 0; j < indent; j++) {
printf(" ");
}
} else if (code[i] == '}') {
printf("\n");
indent--;
for (int j = 0; j < indent; j++) {
printf(" ");
}
printf("}");
} else if (code[i] == ';') {
printf(";\n");
for (int j = 0; j < indent; j++) {
printf(" ");
}
} else {
printf("%c", code[i]);
}
}
// 释放内存并关闭文件
free(code);
fclose(fp);
return 0;
}
上述代码做了以下事情:
- 使用
fopen
函数打开文件,读取模式为 "r"。 - 使用
fgetc
函数读取文件中的字符,并将其存储到字符数组code
中。 - 循环遍历字符数组,当遇到 "{", "}" 或 ";" 时,在