助教給我的郵件中這樣說:
Jerry Huang 致 我
顯示詳細信息 3月21日 (6天前)
Hi,
我編譯了你們的代碼,進行了測試,好像和希望的結果差距比較大,請你們再檢查確認一下。
如果是提交錯了,請重新提交。
Thanks
huang
結果我只打了70分。。。。。
1
#include<iostream>
2
using namespace std;
3
/* 判斷字符串是否在引號里面 */
4
int 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
}
22
void 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
}
71
int main ( )
72
{
73
cut_add();
74
}
我不知道什么原因,手動輸入可以的,但是用文件輸入輸出的話,輸出就停不了了。。。。
題目:
就是給你個.cpp文件,這是加注釋的,然后讓你生成一個.txt文件,除去代碼的注釋。
用命令行輸入:
erasecomment < DataIn.cpp > result.txt