c++ - 将 .txt 值插入 vector

标签 c++ vector

我一直在尝试弄清楚如何将 .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/

相关文章:

c++ - 在下面的示例中,函数对象 "rev"是根据自身定义的。这怎么可能?

c++ - 如何将双引号放入字符串文字中?

c++ - 在没有内存复制的情况下左修剪 std::vector

C++ std::set 为什么它是关联的?

c++ - CMake + CUDA + OpenCV

c++ - 当我反转我的字符串时,我得到一个数字 2

c++ - 重新分配 std::vector 对象时指向内部数据结构的指针的有效性

vector - clojure:将索引添加到 map 向量

c++ - 移除 std::vector<std::string> 中的元素

c++ - 有效地遍历 vector 中的值