【C++】入出力のメモ

標準入出力のやり方を毎回忘れるのでメモ.

入力

注意)cinよりscanfを使う方が速い。
cinを使う場合は以下を記した上で使わないとscanfよりだいぶ遅くなる。

cin.tie(0);
ios::sync_with_stdio(false);
EOFまで.もしくはスペースまでの1回など
int n;
while(cin >> n){

}
スペース区切りの複数の入力
int a, b;
while(cin >> a >> b){

}
カンマ区切りの複数の入力

カンマを抜くためのchar型の変数を用意

int a, b;
char c;
while(cin >> a >> c >> b){

}

もしくは,

int a, b;
cin >> a;
cin.ignore();
cin >> b;

もしくは,カンマを空白に置き換えてしまう

getline(cin, str);
replace(str.begin(), str.end(), ',', ' ');
stringstream buf(str);
for (int i = 0; i < 4; i++) {
    buf >> x >> y;
}

文字列入力

空白ないし改行区切りのとき
#include <string>
string s;
cin >> s
(空白が入っていても)1行すべて読みたいとき
string s;
getline(cin, s);

出力

桁数指定で出力するとき

小数第?位まで出力するとき
#include <iomanip>

//小数第3位まで出力
double a;
cout << fixed << setprecision(3) << a << endl;