c++读取文件,将每一行放入数组,对每个变量做一些操作

C++ reading file, putting each line in array, doing something with each variable

本文关键字:数组 操作 变量 文件 读取 一行 c++      更新时间:2023-10-16

尝试用c++读取文件,将每行放入数组,对每个变量做一些操作

它只保存文件的最后一行

#include <fstream>
#include <vector>
#include <string>
 #include <algorithm>
 #include <iostream>
using namespace std;
int main()
{
    std::ifstream the_file("example.txt");
    std::string s;
    std::vector<std::string> lines;
    while (std::getline(the_file, s))
    {
        lines.push_back(s);
    }
for(int i=0; i < sizeof(lines)/sizeof(lines); i++)
   {
       cout << lines[i] << endl;
   }
}

lines.size()将返回向量的长度。所以使用

for(int i=0; i < lines.size(); i++) {
    ...
}

sizeof(lines)/sizeof(lines)将返回1,这意味着循环将只运行一次。

std::vector有一个size()方法,你可以使用:

for(int i=0; i < lines.size(); i++)

如果你至少使用c++ 11:

for(auto value : lines)
{
  cout << value << endl;
}

程序只打印文件的第一行,因为sizeof(lines)/sizeof(lines)为1,而for循环将运行一次,只打印lines[0]。你必须通过lines向量的所有元素来打印所有元素。要做到这一点,for循环应该像这样:for(int i=0; i< lines.size(); i++){ cout<<lines[i]<<endl; }