在整数之间找到字符

时间:2011-03-12 09:50:32

标签: c++

我想用c ++制作一个程序,从一个包含信息的文件中获取输入 像这样:

physic 17
math 20
programming 10

如果我想在这个文件中给出整数,我不想要像物理等字符 我应该包括哪些图书馆以及我应该使用什么功能

4 个答案:

答案 0 :(得分:1)

当您使用fstream之类的文件流并读取字符串时,您会从流中获得一个字。 所以尝试创建fstream和:

fstream s("file.txt",ios::in);
string word;
int number;
s >> word;
s >> number;
// do something with 17 (you got it in number variable)
s >> word;
s >> number;
// do something with 20 (you got it in number variable)
//and so on...

答案 1 :(得分:1)

直到文件结束 -

    来自文件的
  1. std::getline。 (fstream执行文件操作)
  2. strtok基于空间分隔符的读取字符串(即,从文件读取行)直到行尾。 (cstring
  3. 使用atoi将第二个标记转换为整数。 (cstdlib

答案 2 :(得分:0)

您需要为此编写on函数。但我记得scanf能够通过指定类型来过滤掉字符/数字。

http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

答案 3 :(得分:0)

我可能会使用previous answer中发布的digits_only facet来执行此操作。序列如下:

std::ifstream infile("whatever.txt");
infile.imbue(std::locale(std::locale(), new digits_only());

std::vector<int> numbers;
int temp;

while (infile >> temp)
    numbers.push_back(temp); // or use std::copy, if you prefer