在c 语言中 文档注释,将一个C 语言源程序文件中所有注释去掉后,存入另一个文件。...
时间: 2024-01-22 13:20:46 浏览: 38
以下是一个简单的 C 语言程序,用于去除指定文件中的注释,并将结果保存到另一个文件中。
```c
#include <stdio.h>
int main()
{
FILE *input_file, *output_file;
char input_filename[50], output_filename[50], c, prev_c;
printf("Enter input filename: ");
scanf("%s", input_filename);
// 打开输入文件
input_file = fopen(input_filename, "r");
if (input_file == NULL) {
printf("Error: Unable to open input file.\n");
return -1;
}
printf("Enter output filename: ");
scanf("%s", output_filename);
// 打开输出文件
output_file = fopen(output_filename, "w");
if (output_file == NULL) {
printf("Error: Unable to open output file.\n");
fclose(input_file);
return -1;
}
// 读取输入文件中的每个字符,去除注释并将结果写入输出文件
prev_c = '\0'; // 上一个读取的字符
while ((c = fgetc(input_file)) != EOF) {
if (prev_c == '/' && c == '/') {
// 行注释,忽略该行后面的所有字符
while ((c = fgetc(input_file)) != EOF && c != '\n');
if (c != EOF) {
fputc('\n', output_file);
}
} else if (prev_c == '/' && c == '*') {
// 块注释,忽略该块注释
while ((c = fgetc(input_file)) != EOF && !(prev_c == '*' && c == '/'));
} else {
fputc(prev_c, output_file);
}
prev_c = c;
}
fputc(prev_c, output_file); // 写入最后一个字符
// 关闭文件
fclose(input_file);
fclose(output_file);
printf("Comments removed successfully.\n");
return 0;
}
```
程序的思路是读取输入文件中的每个字符,将所有注释去掉,并将结果写入输出文件。具体实现中,需要判断当前字符是否是注释的起始字符(斜杠),如果是则判断注释类型(行注释或块注释),并忽略对应的注释内容。最后将去除注释后的内容写入输出文件即可。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)