如何搜索文件以查找整数

时间:2016-04-20 04:05:58

标签: visual-studio c++11 vector

如果已经涵盖了这一点,我会提前道歉,但我一直在寻找过去几个小时,而且我被驱赶到疯狂的地步。

我必须基本上读取一个输入文件,该文件可能在文件中的任何位置都有整数。

示例输入:

  

单词单词单词5单词单词7单词单词单词单词8单词单词单词。单词单词单词单词67.单词9

我只需要获得整数,然后将整数放在一个向量中。我尝试一次只读一个字符,然后将其转换为int类型,但这并没有真正起作用。我尝试在via string中读取它,然后将其转换为整数,但这也不起作用。数字可以在文件中的任何位置。我希望这是有道理的,但任何帮助都会受到赞赏。

如果重要的话,我正在使用Visual Studios。我也用c ++编程。

2 个答案:

答案 0 :(得分:2)

这个程序在stdin上查找整数(如果你愿意,你可以使用另一个istream)并打印它们,每行一个。

#include <iostream>

int main()
{
    std::istream& input = std::cin;
    intmax_t value;
    while (!input.eof()) {
        if (input >> value) {
            std::cout << value << '\n';
        } else { // not an integer, ignore up to next space                                                             
            input.clear();
            input.ignore(std::numeric_limits<std::streamsize>::max(), ' ');
        }
    }
}

答案 1 :(得分:0)

您还可以尝试<regex>

std::string input

使用此正则表达式迭代器,您可以在字符串中查找数字并将其捕获为文本,然后使用您最喜欢的方法将文本转换为数字。

看看 Demo

要将其与文件一起使用,您应将{{1}}替换为文件流。