【问题标题】:How to get program to read a line? C++如何让程序读取一行? C++
【发布时间】:2016-01-10 15:30:09
【问题描述】:

我有一个数据集,其中包含标题和这些标题下方的数据。如何让 c++ 读取第一行实际数据(从第三行开始)并继续读取直到文件结束?

我知道你必须在某个声明的变量上使用 while 循环和 '++',但我不知道该怎么做。

这是数据文件的截图:enter image description here

【问题讨论】:

  • 请不要在您的帖子中使用链接。您可以只输入几行数据(或复制/粘贴)
  • 欢迎来到 Stack Overflow。请编辑问题并以文本形式提供数据的前几行。此外,您应该发布到目前为止您尝试过的内容。

标签: c++ line readlines


【解决方案1】:

在 while 循环之前先将第一行读入一个虚拟变量

How to read line by line or a whole text file at once?

#include <fstream>
#include <string>

int main() 
{ 
    std::ifstream file("Read.txt");
    std::string str; 
    std::getline(file, str); // read a line, as dummy read
    while (std::getline(file, str)) // keep reading till end of file
    {
        // Process str
    }
}

【讨论】:

  • 那是我不明白的部分。所以你的意思是:row = 1;而(条件)行++等......?程序如何理解“行”被用来表示它正在读取的行?
  • getline 只取下一行,不用担心row++
  • 如果我不想读取行中的每条数据,这会起作用吗?例如,如果一行包含“姓名”、“地址”和“工作”的数据,但我只想要“姓名”和“工作”数据条目,那么 getline 是否有效?
  • 认为您需要先阅读整行,然后删除其他“无用”数据。或者您是否有现有的功能来读取您的行并只返回您需要的数据条目?
  • 搜索文件/字符串解析。有不同的方法有效。最简单的方法是读取一行文本并将其保存为字符串。然后使用 std 库来解析该行文本,将该行的不同部分分解为标记(有价值或可用的数据),然后将其存储到数据结构中,处理或操作数据。然后重复此过程,直到您到达文件末尾或“关键字 - 语法”,它表示您要读取的文件的结尾,这将导致您跳出循环而忽略文件的其余部分。
猜你喜欢
  • 2018-05-03
  • 2022-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多