C ++读取文件,将每行放在数组中,对每个变量执行某些操作

时间:2015-09-27 18:12:23

标签: c++

尝试使用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;

   }
}

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

std::vectorsize()方法,您可以使用:

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

如果您使用至少C ++ 11,也可以使用基于范围:

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

答案 2 :(得分:0)

您的程序仅打印文件的第一行,因为sizeof(lines)/sizeof(lines)为1,而for循环仅在打印lines[0]后运行。您必须浏览lines向量的所有元素才能打印所有元素。为此,for循环应如下所示: for(int i=0; i< lines.size(); i++){ cout<<lines[i]<<endl; }