Getline跳过最后一个半隆(CSV)C
Getline skips last semicolon (csv) c++
我有一个非常大的csv文件,每行的逗号分开为10个,在每行的末端为a n。
现在我有一排只有半龙。值的量对应于其他行中的逗号分离值
中有多少个。5696;Neusser Strasse;49;1;50670;Neustadt-Nord;18.09.1990;um;1890;Wohn- u. Geschäftshaus
;;;;;;;;;
5698;Richard-Wagner-Strasse;18;1;50674;Neustadt-Süd;18.09.1990;;1905;Wohnhaus
当我现在开始运行程序时,它将从第三行作为第二行的最后一个值获得" 5698",所以我得到的是:
0 Denkmalnummer: 5696
1 Strasse: Neusser Strasse
2 Nummer: 49
3 Bezirk: 1
4 PLZ: 50670
5 Ort: Neustadt-Nord
6 unter Schutz: 18.09.1990
7 Baujahr Zusatz: um
8 Baujahr: 1890
9 Kurzbezeichnung: Wohn- u. Geschäftshaus
****************
0 Denkmalnummer:
1 Strasse:
2 Nummer:
3 Bezirk:
4 PLZ:
5 Ort:
6 unter Schutz:
7 Baujahr Zusatz:
8 Baujahr:
9 Kurzbezeichnung: 5698
****************
0 Denkmalnummer: Richard-Wagner-Strasse
1 Strasse: 18
2 Nummer: 1
3 Bezirk: 50674
4 PLZ: Neustadt-S├╝d
5 Ort: 18.09.1990
6 unter Schutz:
7 Baujahr Zusatz: 1905
8 Baujahr: Wohnhaus
9 Kurzbezeichnung: 5699
这继续并弄乱了数据的正确对齐。
我的主要代码看起来像这样(通过getline,文件的数据存储在向量中):
if (denkmallist.is_open()) {
if (counter < 1) {
while (getline(denkmallist, line)) {
stringstream ss(line);
while (getline(ss, line, ';')) {
ausgelesenes.push_back(line);
counter++;
daten.push_back(ausgelesenes);
ausgelesenes.clear();
}
}
}
else{
while (getline(denkmallist, line)){
ausgelesenes.push_back(line);
}
daten.push_back(ausgelesenes);
ausgelesenes.clear();
}
}
和随后显示结果的代码如下:
for(int x=0, y=semis; x<=semi2+2, y<daten.size(); x++, y++){
if (x > semi2-1){
x = 0;
cout << 'n' << "****************" << 'n' << endl;
}
cout << x << " " << daten[x][0] << ": " << daten[y][0] << endl;
}
半度代表整体的数量。
如果有人可以帮助我,我会很高兴:)
内部循环使用对getline
的调用来决定何时完成由外部调用 getline
读取的文本字符串。没关系,但是您必须提防无关的失败。
对于第一行,内部循环运行十次;一次以;
结尾的每个字段,再一次读取其余文本。
对于第二行,上次;
之后没有文本。第九次通过循环后,getline
看不到文本,也没有定界符,因此它得出结论是在输入的末尾。呼叫失败,内部循环仅读取九个输入而不是预期的十个。
相关文章:
- lower_bound()返回最后一个元素
- 获取向量C++中第一个值和最后一个值的和
- 获取用C/C++打印的最后一个字符串
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 为什么这个程序返回最后一个单词而不是最长的单词?
- 为什么我的最后一个 ELSE 条件无法正确执行
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 仅显示链表的最后一个元素
- 测试迭代器是否位于列表中的最后一个
- push_back通过自行创建的对象获取最后一个元素的向量
- 使用 map.end() 访问 map 的最后一个元素
- 如何知道地图中的最后一个元素是否被删除?
- std::矢量保存 只推送最后一个元素
- 反转后不返回最后一个元素
- 如何删除矢量中的重复值,最后一个除外
- 如何在写入文件时擦除最后一个逗号
- 如何在新数组较小时创建新数组并将旧数组的最后一个元素复制到新数组中?
- Getline跳过最后一个半隆(CSV)C
- 将数据附加到 csv 文件,在最后一个条目之前而不是最后一个条目之后.C++