[問題] getline讀檔案多一行
以下是我的程式碼
std::ifstream file(dataset);
std::vector<std::vector<std::string>> dataString;
std::string line = "";
while(getline(file, line)){
std::vector <std::string> vec;
boost::algorithm::split(vec, line, boost::is_any_of(delimeter));
dataString.push_back(vec);
}
file.close();
圖片是我讀的檔案的最後端
https://i.imgur.com/2IJwDNB.jpg
檔案總行數是32563,最後兩行是空白的
我使用getline來讀檔
但我發現我讀出來的vector長度是32562
然後如果我把讀的檔案的最後兩個空白行刪掉,結果又是正確的32561
想請問為什麼會有這個三個數字的差異
-----
Sent from JPTT on my iPad
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.63.65 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1698415544.A.C32.html
→
10/27 22:28,
1年前
, 1F
10/27 22:28, 1F
顯示32562 跟原檔getline得到的一樣
→
10/27 22:40,
1年前
, 2F
10/27 22:40, 2F
只多一行是32561 是正確的
※ 編輯: bamboopole (61.70.63.65 臺灣), 10/27/2023 22:53:41
※ 編輯: bamboopole (61.70.63.65 臺灣), 10/27/2023 22:54:43
→
10/27 23:03,
1年前
, 3F
10/27 23:03, 3F
→
10/27 23:03,
1年前
, 4F
10/27 23:03, 4F
→
10/27 23:03,
1年前
, 5F
10/27 23:03, 5F
→
10/27 23:05,
1年前
, 6F
10/27 23:05, 6F
→
10/27 23:05,
1年前
, 7F
10/27 23:05, 7F
→
10/27 23:05,
1年前
, 8F
10/27 23:05, 8F
推
10/28 00:27,
1年前
, 9F
10/28 00:27, 9F
→
10/28 10:34,
1年前
, 10F
10/28 10:34, 10F
→
10/28 10:34,
1年前
, 11F
10/28 10:34, 11F
感謝各位,我懂了
倒數第二行有換行符號,所以才會出現32563行
而最後一行沒有換行符號,所以是直接結束
※ 編輯: bamboopole (180.217.202.238 臺灣), 10/28/2023 11:36:29
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章