利用標頭檔案
進一步理解:
注意1:在這一段**
ifstream fin("file.txt");
char ch;
int countere=0;
int countersum = 0;
if (fin)
}else
執行中可以看出
1:如果檔案不存在是會列印」檔案開啟失敗的 「意味著fin.eof()並不能表明檔案是否開啟 2:如果給乙個全e的檔案,sum會比countere 大1,這其實是在檔案讀取完後再讀取一次才能將fin.eof()置為1.也就是表明達到的檔案的末尾.
這裡目前我大致的思路是用getline(),以','為分隔符,先讀入string中再做具體的處理。
這裡以遇到的處理數字為例,用stringstream將字串變為相應的數字,這一部分參見
似乎效率會一直有人噴c++io很慢,不過目前用起來很簡單就夠了.
ifstream file ("topo.csv");
string linestring;
stringstream slinestring;
string singlestring;
stringstream ssinglestring;
int temp;
vector
v;while (file)
slinestring.clear();}}
for (auto i = v.begin(); i != v.end();++i)
這裡關於stringstream的使用還有一些問題,今天補起來
相關部落格:
類檢視即引用關係:
**put()成員函式用於在尾部新增字元
str()成員函式物件返回乙個string字串
流操作符結合stringstream進行格式的轉換**
istringstream
istringstream類用於執行c++風格的串流的輸入操作。
//istringstream類用於執行c++風格的串流的輸入操作。
//str()成員函式的使用可以讓istringstream物件返回乙個string字串
istringstream istr("1 56.72");
int a;
istr>>a;
cout
<
<
istr >> b;
cout
<< "b:"
<< b << endl;
cout
<< "讀取b後的ostr:"
<< istr.str() << endl;
//那麼這裡是不是恰好是這樣符合讀取的順序才能正確讀出呢
//以下為驗證
istringstream istr2("1 56.72 2 2.5 3");
int x1, x2, x3;
double y;
istr2 >> y;
istr2 >> x1;
istr2 >> x2;
istr2 >> x3;
cout
<< "y:"
<< y << '\t'
<< "x1:"
<< x1 << '\t'
<< "x2:"
<< x2 << '\t'
<< "x3:"
<< x3 << '\t'
<< endl;
//顯然 上述例子說明其只是按順序在讀取
//輸出結果
/* a:1
讀取a後的ostr:1 56.72
b:56.72
讀取b後的ostr:1 56.72
y:1 x1:56 x2:-858993460 x3:-858993460
*/
2. ostringstream
//ostringstream
//put()函式用於在尾部新增字元
ostringstream ostr;
ostr.put('d');
ostr << "dawdawd";
cout
<< ostr.str() << endl;
string gstr = ostr.str();
cout
<< gstr << endl;
ostr << "xyz";
gstr = ostr.str();
cout
<< gstr << endl;
ostringstream ostr2("qwe");
cout
<< ostr2.str() << endl;
ostr2.put('s');
cout
<< ostr2.str() << endl;
ostr2 << "dawdwafffgg";
cout
<< ostr2.str() << endl;
/*輸出結果
ddawdawd
ddawdawd
ddawdawdxyz
qweswe
sdawdwafffgg
*/
3.stringstream
使用方法類似,這裡用其進行格式轉換
stringstream sstr("ccc");
sstr.put('a');
sstr.put('e');
string gstr2 = sstr.str();
cout
<< gstr2 << endl;
int int_a; //int a;
sstr >> int_a;
cout
<< int_a<< endl;
sstr >> int_a;
cout
<< int_a<< endl;
C CSV檔案操作
namespace common strline.remove strline.length 1 sw.writeline strline strline 表的內容 for int j 0 j dt.rows.count j sw.writeline strline sw.close catch e...
C CSV檔案讀寫
方法一 using system.text using system.data using system.io namespace opencsv else dt.rows.add dr if aryline null aryline.length 0 sr.close fs.close retur...
Linux檔案處理與搜尋
1 cut 資料剪下 語法 cut option.file 選項 b 以位元組為單位進行分割 c 以字元為單位進行分割 d 自定義分割符,預設為製表符 f 與 d一起使用,指定顯示哪個區域2 sort 欄位排序 語法 sort option file sort option file 選項 r 反向...