助教给我的邮件中这样说:
Jerry Huang 致 我
显示详细信息 3月21日 (6天前)
Hi,
我编译了你们的代码,进行了测试,好像和希望的结果差距比较大,请你们再检查确认一下。
如果是提交错了,请重新提交。
Thanks
huang
结果我只打了70分。。。。。
1#include<iostream>
2using namespace std;
3/* 判断字符串是否在引号里面 */
4int qutation ( char c , bool &f ,bool f1 )
5{
6 char temp;
7 if ( c=='"' && f1==false)
8 {
9 f=true;
10 cout<<c;
11 while ( f==true )
12 {
13 cin.get(temp);
14 if ( temp=='"')
15 f=false;
16 cout<<temp;
17 }
18 return 1; //发现引号
19 }
20 return 0; //没有发现引号
21}
22void cut_add ( )
23{
24 char c,temp;
25 bool f1,f2,f3;
26 f1=f2=f3=false; // f1标记block注释,f2标记引号,f3标记line注释
27 while ( cin.get(c) )
28 {
29 if ( !qutation(c,f2,f1) ) // 没有出现引号
30 {
31 /*判断注释开头*/
32 if ( c=='/' )
33 {
34 cin.get(temp);
35 if ( temp=='*' )
36 f1=true;//找到了block注释的开头
37 else
38 if ( temp=='/' )
39 f3=true;//找到了line注释的开头
40 /*当没有找到注释的开头时,执行else部分*/
41 else
42 {
43 cout<<c;
44 cin.putback(temp);
45 }
46 }
47 else
48 if ( f1==false && f3==false )
49 cout<<c;
50 /*判断注释结尾*/
51 if ( c=='*' )
52 {
53 cin.get(temp);
54 if ( temp=='/' )
55 f1=false; //关闭block注释
56 else
57 {
58 cout<<c;
59 cin.putback(temp);
60 }
61 }
62 else
63 if ( c=='\n' )
64 {
65 f3=false; //关闭line注释
66 cout<<c;
67 }
68 }
69 }
70}
71int main ( )
72{
73 cut_add();
74}
我不知道什么原因,手动输入可以的,但是用文件输入输出的话,输出就停不了了。。。。
题目:
就是给你个.cpp文件,这是加注释的,然后让你生成一个.txt文件,除去代码的注释。
用命令行输入:
erasecomment < DataIn.cpp > result.txt