簡體   English   中英

從文本文件中讀取整數並使用 C++ 將它們存儲到向量中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM