我想用c ++制作一个程序,从一个包含信息的文件中获取输入 像这样:
physic 17
math 20
programming 10
如果我想在这个文件中给出整数,我不想要像物理等字符 我应该包括哪些图书馆以及我应该使用什么功能
答案 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)
直到文件结束 -
std::getline
。 (fstream
执行文件操作)strtok
基于空间分隔符的读取字符串(即,从文件读取行)直到行尾。 (cstring
)atoi
将第二个标记转换为整数。 (cstdlib
)答案 2 :(得分:0)
您需要为此编写on函数。但我记得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