这或许是用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输入时便不会从标准输入流提取数据。而是从XXX.in文件中获取输入。同理,freopen("XXX.out","w",stdout)的作用就是把stdout重定向到XXX.out文件中,这样在用cout输出时便会从输出到XXX.out文件而不是标准输出流。
与PASCAL不同的是C++中字符与字符串都用双引号而PASCAL用单引号。
Ⅱ用fstream来代替iostream,然后用ifstream fin("XXX.in")和ofstream fout("XXX.out")来定义文件,再用fin和fout来代替cin和cout即可
②C++中数组是按大小开的,int a[x];表示开一个a[0]..a[x-1]的数组,注意是从0而不是1开始,我就犯了这样一个错误导致程序死循环。
③By the way如果要用变量作文件名以及其它被调用的字符串可以把变量存为字符串s,然后用s.c_str()就可以被识别。
1/**//*
2 ID:shuaicp1
3 PROG:ride
4 LANG:C++
5*/
6#include <iostream>
7using namespace std;
8
9int 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