hoge 100 200 Hello World A
aaaa 999 500 Foo Bar Baz X
というようにタブで4列に区切られたテキストファイルsample.txtがあります。
これをタブでのみ区切って配列を作りたいです。
C++
1#include <iostream> 2#include <vector> 3#include <string> 4#include <cstring> 5#include <fstream> 6 7 8int main(){ 9 vector<int>v; 10 vector<int>w; 11 int x; 12 int y; 13 string s; 14 ifstream ifs("sample.txt"); 15 for(int i=0;i<2;i++){ 16 ifs>>s>>x>>y>>s>>s; 17 v.push_back(x); 18 w.push_back(y); 19 } 20 for(int i=0;i<2;i++){ 21 cout<<v[i]<<"\n"; 22 cout<<w[i]<<"\n"; 23 } 24 return 0; 25}
として、ifstreamで区切ると、Hello Worldの間のスペースなども区切りとして認識してしまい、結果が
100
200
999
500
となりません。
タブでのみ(可能なら指定した文字でのみ)区切るためにはどうすればいいでしょうか?
区切ったあと、整数は整数として扱い為に上述のようなコードにしているので、
http://edu.clipper.co.jp/pg-2-22.html にあるような方法では100などが文字列になってしまうため使えません。
Windows8.1にCygwinをいれてg++ -std=gnu++11 でコンパイルしています。
ご教示の程よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/28 09:34
2015/09/28 10:12