c++读取文件,将每一行放入数组,对每个变量做一些操作
C++ reading file, putting each line in array, doing something with each variable
尝试用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; }
相关文章:
- 对字符数组中的元素执行逐位操作
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 在矢量数组C++中使用算法库操作
- C++ 黑客等级 - 数组操作
- 使用字符数组堆叠。如何执行"+"和"*"操作?
- C++数组指针上的删除操作
- 如何有效地使用 std::async 对指针数组执行操作
- 用于在一维数组上嵌套循环操作的正确 openmp 指令
- 带有动态数组的操作内存中的垃圾箱
- 如何修复问题中的"teminated due to timeout"错误 数组操作 |黑客兰克?
- 数组A中最大的元素数量可以通过使用操作最多可将其降低至1
- 在数组大小中使用位操作的原因
- C++ 如何处理 ifstream 和 char 数组的">>"操作?
- c操作指向char数组的指针,混淆
- 数组操作
- C# * 和 & 操作器,用于指向数组
- C++具有类似于 Python/NumPy 的数组操作的库
- 此数组操作在C++中如何工作
- 简单的数组操作错误
- 使用矢量的二维数组操作