题目描述
给你一段C++代码,将其中的注释去除后输出剩余的代码。
注释共有两种形式:
1. 行注视:以//开头,一直作用到行尾为止。
例子:
去注释后
注意:保留行尾换行符
2. 段注视:以/*开头,到*//结尾,中间部分都是注释,可以跨行。
例子:
1 2 3 4 5 6 7
| int main() { /* 我是 一段 注释 */ }
|
去注释后:
输入格式:
一段C++程序代码
输出格式:
去掉注释部分后的程序
样例输入
1 2 3 4 5 6 7 8
| int main() { /* 我是 一段 注释 */ int n;//n表示数据规模 }
|
样例输出
提示
注意:和之前题目中的解释一样,在int n;之前有一个空行,被在线评测系统删掉,实际程序输出应该有该空行。
输入方法
此题按字符输入,即不断输入下一个字符,直到字符流结束。
C函数方法:
1 2 3
| while ((c = getchar()) != EOF) { 处理.. }
|
C++流方法:
1 2 3
| while ((c = cin.get()) != EOF) { 处理.. }
|
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include<iostream> using namespace std; int main(){ char c; while ((c = cin.get()) != EOF){ if (c == '/'){ char a = cin.get(); if (a == '/'){ while ((a = cin.get()) != '\n'); cout << endl; } else if (a == '*'){ while (c = cin.get()){ if(c == '*'){ a = cin.get(); if(a == '/') break; } } }else cout << c << a; }else cout << c; } return 0; }
|