如何从文本文件中的特定列读取数据
How to read data from a specific column in a text file
我有一个包含一些列的文本文件
name,age,address,gender
我知道我可以访问带有getline();
的行,但是当我获得包含getline();
返回的数据的字符串时,我想读取一些特定的列。我该怎么做?
我看到了这个问题的解决方案,但它是在我还不知道的 java 中,所以我决定发布这个以获得 c++ 答案
无论你是用Java还是C++问,方法都是相似的。
阅读整行后。用分隔符分割行。
在Java中,它只是
line.split(",");
在C++中,您可以使用str.find(",")
来获取逗号的位置。然后将分隔的令牌子串起来。
设置一个 count
变量来计算到目前为止已分隔的令牌数,以到达所需的列。
方法是相同的:逐行读取文件并进行标记化,如果我想查看第二列,则采用数组的第二个选项。它可以改进,因为它做了很多副本,但想法就在这里。
#include <sstream>
#include <string>
#include <boost/algorithm/string.hpp>
std::string line;
vector<string> strs;
std::ifstream infile("thefile.txt");
while (std::getline(infile, line))
{
strs.clear();
boost::split(strs,line,boost::is_any_of("t"));
cout<<"age ="<<strs[1]<<endl;
}
您也可以使用 strtok 解析 C 字符串(如果您使用 STL 字符串,请将 C 字符串复制到 char 数组中!它将很好地工作,尽管需要单独的副本是由于strtok确实修改了字符串以及一些静态内存(或者,也许是线程本地存储;我不会依赖它(
相关文章:
- 如何在ros2中从rosbag2读取数据
- OpenCV 和从 OutputArrays 或 (Mat) 读取数据
- 使用C++从磁卡读卡器MT188读取数据
- HDF5 简单读取数据集失败
- 嵌套结构,从由空行分隔的文件中读取数据
- 不要从输入队列套接字读取数据
- 从文件中读取数据,操作员>>
- 如何从excel文件中读取数据并存储到变量中?
- C++:从文件中读取x y数据会产生无限循环吗
- 无法通过FT232RL读取数据
- 如何从QNetworkReply读取数据?
- C++ 逐行从文件(包含空格)读取数据
- 通过显示一行星号来创建条形图,该条形图将读取数据的输入文件
- 我们可以从 TXT 文件中读取数据并使用 C 和 C++ 将其保存到 SQL 数据库吗?
- 从多个 tcp 连接读取数据
- 从文本文件中读取数据并删除所有换行符空格,并在 C++ 控制台中显示
- Qt TCP服务器不从客户端读取数据
- 累积从 C++11 中的文件中读取数据的整数
- 从 txt 文件中读取数据的最简单方法
- 从 txt 文件中读取数据的 Getline