题目:
读出一个作业.cpp文件,删除全部注释内容,即以“/*…*/
”相括的文本和以“//
”开始到行末的文本,生成一个新的.cpp文件。
代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream infile("d:\\作业.cpp", ios::in);
ofstream outfile("d:\\new作业.cpp", ios::out);
char s[1024];
int Print = 0; //判断当前行是否有输出
int quote = -1; //判断是否在引号之中,1是,-1不是
int flag = 0; //判断是否遇到/*
while (!infile.eof())
{
infile.getline(s, 1024);
Print = 0;
for (int i = 0; i < strlen(s); i++)
{
if (flag)
{
if (s[i] == '*'&&s[i + 1] == '/')
{
flag = 0;
i++;
continue;
}
}
else
{
if (s[i] == '"')
{
quote *= -1;
}
if (quote == -1)
{
if (s[i] == '/'&&s[i + 1] == '/')
{
break;
}
if (s[i] == '/'&&s[i + 1] == '*')
{
flag = 1;
}
}
if (!flag)
{
outfile.put(s[i]);
Print = 1;
}
}
}
if (Print)
{
outfile.put('\n');
}
}
infile.close();
outfile.close();
}
相关链接:https://www.cnblogs.com/xiaodingmu/p/6279723.html
https://blog.csdn.net/pear_zi/article/details/6917268