揮発性のメモ2

http://d.hatena.ne.jp/iww/

標準入力を文字列に入れる

普通にやると改行で区切られ、行単位でしか取り込めない。改行コードも無くなる。

    cin >> a;
    cout << "---" << a << "---" << endl;
$ ./a.out
hoge   ←入力
---hoge---   ←出力


std::getline - cppreference.com

istream& std::getline( istream& is, string& s );
istream& std::getline( istream& is, string& s, charT delimiter );

デフォルトのデリミタは改行コードになっている
デリミタは\0とか適当なのを1文字だけ指定出来る。

#include <iostream>
#include <string>
using namespace std;

int main(){

    string a;
//  cin >> a;
    getline( cin, a, '\x03' );
    cout << "---" << a << "---" << endl;

    return 0;
}
$ ./a.out
aaaaa
bbbbb
ccccc   ← ここでCTRL+D
---aaaaa
bbbbb
ccccc
---