c++ - 通过C++ fstream分离.txt文件中的注释和数据

标签 c++ fstream

我有一些具有以下模式的 .txt 文件:

#Some comments here

bull rocket 3
trailer laker -12

#More comments there

Warriors Pacers 9

基本上,有一些评论以 # 开头 其他行包含两个字符串,后跟一个 int

我需要将这两个字符串和一个 int 一个一个地处理 我必须忽略任何空行或以 #

开头的行

我正在考虑使用 ifstream.get() 来读取第一个字符,然后 如果是 #

则丢弃整行

但是当涉及到数据时,我被卡住了。我怎样才能读一个字符 然后得到第一个字符串?即,我找到一个 'b' 然后我需要 公牛”。我该怎么办?

谢谢

最佳答案

使用“while (std::getline(is, line)) {”读取文件流(std::istream is)一行(std::string line) 一次。

如果 lineempty() 或以 # 开头,continue。在执行此检查之前,您可能希望删除任何前导空格。

否则,解析该行(可能使用 std::istringstream iss(line); iss >> first >> second >> value;)。 StackOverflow 上的其他地方有很多关于如何执行此操作的出色示例。<​​/p>

关于c++ - 通过C++ fstream分离.txt文件中的注释和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15082383/

相关文章:

c++ - 如何使用 GTest 测试具有多个模板参数的 C++ 模板类?

android - 在运行时替换函数中的字符串 Android NDK

c++ - 为什么 make_tuple 的实现不通过大括号初始化返回?

c++ - fstream 删除特定的开始到结束行

c++ - 为什么 ifstream 没有读到最后?

c++ - 从用户获取目录

c++ - 将 char 数组类型转换为结构(不是类/对象)

c++ - 我该怎么做才能不使用 !openFile.eof()?

c++ - ifstream is.open() 表现得好像它没有在读取文件

c++ - 将文本文件中的数据存储在结构数组 C++ 中