从文件中读取整数

read integer from a file

我正在制作一个从文本文件中读取整数并将其显示在屏幕上的程序。我想使用 stringstream,但我不确定它是如何工作的。

文本文件还包含例如以下单词:

She bought a tshirt for 25 shoes for 50 and a book for 5

在屏幕上应该只看到 25、50 和 5。现在我看到的输出只是一个 0。 我的代码:

#include <iostream>
#include "std_lib_facilities.h"

using namespace std;

string file = "file.txt";

void f() {
    vector<int> num;
    ifstream ist {file};
    if (!ist) error("can't open input file", file);
    string textline;
    while (getline(ist, textline)) {
        istringstream text(textline);
        int integer;
        text >> integer;
        num.push_back(integer);
    }
    for (int i = 0; i < num.size(); i++) {
        cout << num[i] << endl;
    }
}

int main()
{
    f();
    return 0;
}

是否可以用不同的方式来做?有人可以向我解释吗?

您应该逐字阅读,而不是逐行阅读,并且在存储之前需要检查您是否成功阅读了一个数字。

现在,您只尝试了行中的第一个字,但失败了。

试试这个:

string word;
while (ist >> word) {
    istringstream text(word);
    int integer;
    if (text >> integer)
    {
        num.push_back(integer);
    }
}