[英]Reading integers from a text file and storing them into a vector using C++
我正在嘗試從數據文件中讀取每行的最后一個數字。 當我讀取最后兩位數字時,它會轉換為字符串。 我的代碼看起來像(到目前為止):
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int main() {
string line;
ifstream fin;
fin.open("prim.txt");
while (fin) {
getline(fin, line);
// cout<<line<<endl;
string s;
int i = 0;
for (int i = line.size() - 2; i < line.size(); i++) {
s = s + line[i];
}
cout << s << endl;
}
fin.close();
return 0;
}
我要從中獲取數據的文本文件是: prim.txt
我想將每行的最后一個數字存儲到一個 int 類型的向量中。
如果文件的每一行包含 3 個由空格分隔的數字,則不需要通過getline
進行復雜的解析。 只需讀取 3 個數字,直到讀取失敗並將最后一個數字存儲在向量中:
std::vector<int> numbers;
int a,b,c;
while( fin >> a >> b >> c) numbers.push_back(c);
您的代碼假定最后一個數字有 2 位數字,但情況可能並非總是如此。 當一行中有尾隨空格時,這也會失敗。 此外,當您可以直接讀取int
時,無需讀取為 string 然后轉換為int
。 最后但同樣重要的是,你的條件while(fin)
是“太晚了”,因為當沒有更多行可讀時最后一個getline
將失敗,但是你仍然嘗試處理該行(如果你想留在getline
你可以使用while(getline(fin,line))
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.