读取由 C++ 条分隔的文件
reading in a file separated by bars c++
>我正在尝试读取字符由条形"|"分隔的C++文件,最好的方法是什么?
谢谢
我假设字段用条分隔,但记录用换行符分隔。
首先,使用 std::getline
阅读文本行:
std::string line;
std::getline(std::cin, line);
然后,在|
肚子上打破界限。
std::stringstream sline(line);
std::string field;
std::getline(sline, field, '|');
...
std::getline(sline, field, '|');
根据您使用的代码的复杂性,您要查找的是 CSV(逗号分隔值)文件读取器的变体。那里有成千上万的代码,如果你的代码需要健壮,我建议你使用其中一个而不是编写自己的代码,因为存在以下复杂性:
- 如果您的某个"值"实际上包含"|"字符怎么办行情说?
- 如果您的某个"值"包含回车符怎么办还是换行?
最受欢迎的之一是Boost令牌器,它应该很容易上手和使用。您只需要确保告诉 tokeniser 您正在使用"|"作为字段分隔符。
查看此相关问题以获取更多提示。
假设你有一个名为"file.dat"
的文件它看起来像这样:
item1|item2|item3|item4|item5|item6
该程序将打印文件中的每个项目:
#include <iostream>
#include <cstdlib>
#include <string>
#include <fstream>
int main(){
std::ifstream infile("file.dat");
std::string item;
getline(infile,item,'|');
while (!infile.eof()){
std::cout << item << std::endl;
getline(infile,item,'|');
}
return EXIT_SUCCESS;
}
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 无法通过空白将文本文件行分隔为矢量
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- 读取制表符分隔的文件时出现问题 C++
- 如何更新和删除文本文件中的特定逗号分隔值?C++
- 如何将逗号分隔的文件读取为 2D int 数组?
- 读取带有分隔C++的文件
- 嵌套结构,从由空行分隔的文件中读取数据
- 如何逐行从文件中获取单词,并在C++中用分号分隔?
- 如何从文件中读取用空格分隔的数字
- 从文件中读取后,将分号分隔的整数存储到数组中
- 如何逐行读取文件并分隔行组件?
- 包含换行符分隔的单词的文件和C++中这些单词的字符串向量的大小是否相同?
- 使用 fstream 在空格分隔文件中查看下一项(不仅仅是一个字符)的方法
- C++将分隔文件导入矢量
- 如何正确创建一个由两个文件分隔的模板类
- 读取选项卡在 c++ 中将文件分隔成数组
- 读取空格将数字从文本文件分隔到整数数组 (C++)
- 读取与文件分隔的输入空间