簡體   English   中英

從.txt文件讀取整型到矢量?

[英]Reading ints from .txt file to vector?

由於某種原因,當我嘗試從txt文件讀取時,向量中的值為零。

這是我的代碼:

int main(){
    ifstream read("problem13.txt");
    vector<int> source;
    int n;

    while (read >> n){
        source.push_back(n);
    }

    for (int i = 0; i < source.size(); i++)
        cout << source[i];

   cout << "Finished.";

}

txt文件相當長,但是格式為: 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74324986199524741059474233309513058123726617309629 91942213363574161572522430563301811072406154908250 23067588207539346171171980310421047513778063246676

這是一本閱讀的書:

#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

int main(){
    ifstream read("e:\\problem13.txt");
    vector<int> source;
    char n;

    while (read >> n){
        source.push_back(n - '0');
    }

    for (int i = 0; i < source.size(); i++)
        cout << source[i];

   cout << endl << "Size: " << source.size() << endl << "Finished.";

}

但是我建議您逐行閱讀,或者如果文件不是很大,則全部讀入std :: string並處理字符串(從文件中讀取是昂貴的)。

為了將每個數字存儲為整數,請讀取每一行並將其存儲在字符串中。 然后處理每一行。

int main(){
    ifstream read("problem13.txt");
    vector<int> source;
    int n;
    string line;

    while (read >> line){
        string::iterator iter = line.begin();
        string::iterator end = line.end();
        for ( ; iter != end; ++iter )
        {
           n = (*iter) - '0';
           source.push_back(n);
        }
    }

    for (int i = 0; i < source.size(); i++)
        cout << source[i];

   cout << "Finished.";

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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