Getline忽略'-用两个分隔符getline

getline ignores ' ' - getline with two delimiters

本文关键字:两个 getline 分隔符 忽略 Getline      更新时间:2023-10-16

在c++中,我得到一个csv文件的矩阵的形式分别为float,float,float,nfloat float float n的每一行。

如果我使用getline明智地读取文件行,结束行分隔符n也总是被读取,即getline(csv_file, csv_line, 'n')getline(csv_file, csv_line)给出输出1,2,3,n,而不是我期望的1,2,3,。我如何明确地丢弃这个n ?

此外,如何区分这两个输入版本并存储特定的分隔符' '',' ?

首先,让每行数据以不同的格式表示通常不是一个好主意。

但是如果是,您可以使用不带分隔符的getline将所有行读取为string,然后使用regexp或简单的字符串函数解析string。您可以通过尝试在string中找到,符号来定义它是哪种格式。如果找到它,则需要用逗号分隔,否则用空格分隔。

也看看stringstream类(链接)。它只适用于需要从已经读取的字符串中切片一些值(而不是只有一种类型)的情况。