入出力について
ICPCの入出力に関してはACM/ICPC国内予選突破の手引きのACM/ICPC問題用入出力の書き方のページによく書かれています。
printf, scanfによる入出力
入力した値を変数に格納するにはscanf関数を使います。scanf関数の書式は次のようになっています。
scanf( 書式指定文字列 , 格納する変数の並び );
scanfの変換仕様
変換仕様 | 使い道 |
%d | 10進数を読み込みint型変数に格納する |
%lld | 10進数を読み込みlong long int型(64bit整数)に格納する |
%x | 16進数を読み込みint型変数に格納する |
%f | 浮動小数を読み込みfloat型変数に格納する |
%lf | 浮動小数を読み込みdouble型変数に格納する |
%c | 1文字を読み込みchar変数に格納する |
%s | 文字列を読み込みchar配列に格納する |
値を出力するにはprintf関数を使います。printf関数の書式は次のようになっています。
変換仕様 | 使い道 |
%d | int型の値を10進数で出力する |
%lld | long long int型(64bit整数)の値を10進数で出力する |
%x | int型の値を10進数で出力する |
%f | 浮動小数の値(double型とfloat型)の値を出力する |
%c | char型の値を1文字として出力する |
%s | char型の配列の値を文字列として出力する |
C++でprintf関数とscanf関数を使うには<cstdio>ヘッダをインクルードしましょう。出力で改行を出力するときはprintf("\n");と書きましょう。
cin, coutによる入出力
cinを使って入力するときは
int a,b; cin >> a >> b;
とするとよいでしょう。scanf関数のように型指定子がありませんが、これは変数の型に合わせて自動的にやってくれるので少し便利です。なので文字列も同じように
string str1, str2; cin >> str1 >> str2;
とすることができます。空白文字や改行は読み飛ばされます。1行まるごと読み込みたいときは
string str; getline( cin , str );
とするとよいです。
...