因此,我试图将输入文件读入二维数组。
我遇到的问题是我只希望读取输入文件中的某些行,但我只是不知道在代码中将第二个忽略项放在何处
这是名为“ Fruit.txt”的输入文件:
Oroblanco Grapefruit
Winter
Grapefruit
Gold Nugget Mandarin
Summer
Mandarin
BraeBurn Apple
Winter
Apple
而我的代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
const int MAX_ROW = 6;
const int MAX_COL = 4;
void FileInput(string strAr[MAX_ROW][MAX_COL])
{
ifstream fin;
fin.open("Fruit.txt");
int columnIndex;
int rowIndex;
rowIndex = 0;
while(fin && rowIndex < MAX_ROW)
{
columnIndex = 0;
while(fin && columnIndex < MAX_COL)
{
getline(fin, strAr[rowIndex][columnIndex]);
fin.ignore(10000,'\n');
columnIndex++;
}
rowIndex++;
}
fin.close();
}
我的代码现在将其存储为:
Oroblanco Grapefruit // strAr[0][0]
Grapefruit // strAr[0][1]
Gold Nugget Mandarin // strAr[0][2]
Mandarin // strAr[0][3]
BraeBurn Apple // strAr[1][0]
Apple // strAr[1][1]
我希望它是这样的:
Oroblanco Grapefruit // strAr[0][0]
Gold Nugget Mandarin // strAr[0][1]
BraeBurn Apple // strAr[0][2]
我只是不知道应该在哪里放置第二个忽略项。如果我在第一次忽略后将其正确放置,那么它将跳过比我想要的更多的东西。
您的代码很好,只需修复变量即可columnIndex
。
并使用3忽略,因为您也需要忽略空行。
fin.ignore(10000,'\n');
fin.ignore(10000,'\n');
fin.ignore(10000,'\n');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句