我一直在尝试弄清楚如何将 .txt 中的内容推送到 vector 中,但我还没有完全成功,所以我偏离了我的任务并创建了一个简单的代码来学习它。
我试图在这里找到类似的帖子,但找不到,所以这是我的代码:
这是文本文件中的内容:
32 34 5 6 243 2341 234 213 24 123 12354 124 432 12
这是代码:
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int main () {
vector <int> numbers;
int val;
int newval = 50;
ifstream file ("text.txt");
if ( file.is_open())
{
for ( int i = 0; i < newval ; i++)
{
numbers.push_back(val);
}
}else{
cout << "unable to open file."<<endl;
}
for ( int i = 0; i < numbers.size(); i++){
cout << numbers[i] << endl;
}
return 0;
}
代码所做的是打印 50 个零。我不确定我做错了什么,任何见解将不胜感激!谢谢。
P. S - 在最初的 for 循环中,我打算这样做:
for ( int i = 0; i < numbers.size() ; i++)
{
numbers.push_back(val);
}
但这对我来说没有任何意义,因为 vector 最初是空的。如果那是我应该做的,请解释。谢谢。
最佳答案
除非我是瞎子,否则你永远不会为 val
赋值。
如果是这种情况,您将得到 0,因为这是 int
的默认值。
要解决此问题,您需要先将读取值分配给 val
,然后再将其添加到 numbers
。另请注意,它很可能会被读取为 string
,因此您必须先将其转换为 int
,然后才能将其分配给 val
;但这是它自己的一系列问题。
关于c++ - 将 .txt 值插入 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30264851/