這或許是用C++寫的第一個提交的程序了,雖然說是第一題,不過對于C++不熟悉的我也只好到處尋找資料。
整理一下:
①C++的文件讀寫操作
類似PASCAL中的assign(input,'XXX.in');和assign(output,'XXX.out');
在C++中可以用多種方法,目前我只知道兩種。
Ⅰ用freopen("XXX.in","r",stdin);和freopen("XXX.out","w",stdout);
freopen("XXX.in","r",stdin)的作用就是把stdin重定向到XXX.in文件中,這樣在用cin或是用scanf輸入時便不會從標(biāo)準(zhǔn)輸入流提取數(shù)據(jù)。而是從XXX.in文件中獲取輸入。同理,freopen("XXX.out","w",stdout)的作用就是把stdout重定向到XXX.out文件中,這樣在用cout輸出時便會從輸出到XXX.out文件而不是標(biāo)準(zhǔn)輸出流。
與PASCAL不同的是C++中字符與字符串都用雙引號而PASCAL用單引號。
Ⅱ用fstream來代替iostream,然后用ifstream fin("XXX.in")和ofstream fout("XXX.out")來定義文件,再用fin和fout來代替cin和cout即可
②C++中數(shù)組是按大小開的,int a[x];表示開一個a[0]..a[x-1]的數(shù)組,注意是從0而不是1開始,我就犯了這樣一個錯誤導(dǎo)致程序死循環(huán)。
③By the way如果要用變量作文件名以及其它被調(diào)用的字符串可以把變量存為字符串s,然后用s.c_str()就可以被識別。
1
/**//*
2
ID:shuaicp1
3
PROG:ride
4
LANG:C++
5
*/
6
#include <iostream>
7
using namespace std;
8
9
int main()
10

{
11
string s;
12
int num[2];
13
freopen("ride.in","r",stdin);
14
freopen("ride.out","w",stdout);
15
for(int i=0;i<=1;i++)
16
{
17
num[i]=1;
18
cin>>s;
19
for(int j=0;j<s.size();j++)
20
num[i]=num[i]*(s[j]-'A'+1)%47;
21
}
22
if (num[0]==num[1])
23
cout<<"GO"<<endl;
24
else
25
cout<<"STAY"<<endl;
26
return 0;
27
}
28

在為了應(yīng)對高考而放棄編程七個月之后,我又將重新拾起我OI路上的遺憾——USACO,這將會是我編程之路的又一起點,或許這個博客能夠見證我思維的增長而不僅僅是編程能力的提高。也許,如摯友陳潔操所言,USACO,這個擁有著遞進(jìn)的層次結(jié)構(gòu),由易到難,講授知識的私人教練,以它那練習(xí)編程結(jié)合,形成鮮明的知識結(jié)構(gòu)的特點,將會成為我,以及我們,在C++之路上最好的路標(biāo)。
但愿當(dāng)我們歷經(jīng)險阻走完這段USACO征程的時候,能夠感受到對C++的認(rèn)識和運用的質(zhì)的飛躍。