练习题2

题目:
读出一个作业.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值