将每行两个单词的文件读入两个不同的向量
Reading a file with two words per line into 2 different vectors
正如标题所说,我正在尝试将文件读取为两个向量。
文件看起来像这样
1你好2
如何3
4你
现在我有这个,但是它似乎不工作
int number;
string word;
std::vector<int> first;
std::vector<string> second;
ifstream inFile(File);
if (inFile.is_open()) {
while (inFile >> number >> word) {
first.push_back(number);
second.push_back(word);
}
}
将number
的类型更改为int
此外,is_open()
是多余的(除非你有一个else
语句来处理文件无法打开的情况),因为如果文件无法打开,while循环无论如何都会失败
您可以使用我认为在std库的头文件中的atoi()
函数。它将一个ASCII字符串转换为一个整数。所以…
#include<string>
string number, word;
std::vector<int> first;
std::vector<string> second;
ifstream inFile(File);
if (inFile.is_open()) {
while (inFile >> number >> word) {
first.push_back(atoi(number));
second.push_back(word);
}
}
你可能需要检查,以确保atoi()
没有失败之前,你推到向量,但这可能适用于你的情况。
atoi()
可能是一个糟糕的选择,我将修改我的答案。请看这个链接。这是公认的答案建议使用std::stoi()
所以修改一下我的答案…#include<string>
string number, word;
std::vector<int> first;
std::vector<string> second;
ifstream inFile(File);
if (inFile.is_open()) {
while (inFile >> number >> word) {
first.push_back(std::stoi(number));//changed this line
second.push_back(word);
}
}
相关文章:
- 在C++中查找两个向量之间最相似的值
- 如何在C++中从两个向量生成所有可能的对?
- 返回两个向量 – 使用引用还是元组?
- 检查两个向量是否并行的最有效方法
- 如何获得比较两个向量对的子集
- 如何在 c++ 中对两个向量进行线性搜索?
- 如何在 c++ 中从两个向量创建 JSON 对象?
- C++如何同时删除位于两个向量中的 2 个指针?
- 如何通过 stl 容器和算法库计算两个向量的内积?
- 删除两个向量中的重复项
- 两个向量在犰狳中相等?
- 为什么我无法比较自定义类类型的两个向量?
- 通过块比较两个向量时,如何避免重复
- Boost.Test - 如何在交叉点上检查两个向量
- 通过移动从两个向量创建元组向量
- 如何在C 中合并两个向量
- R- armadillo c :用其他两个向量对向量进行排序
- 使用嵌套循环搜索两个向量并查看其属性
- 如何以精度换取速度来评估C++中两个向量的点积符号?(不特定于硬件)
- 我该如何XOR这两个向量的内容