我正在逐行读取文本文件。该文件由 196921 行组成,即大约 200.000 行。 (文件约为 65 MB)当我使用 std::getline 读取文件时,我只读入 9726 行。我不知道如何获取该文件的其余部分...
std::wifstream file(strImportfile);
file.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
std::wstring strLine;
int iCountRows = 0;
while (std::getline(file, strLine)) {
++iCountRows;
}
file.close();
变量 strLine 显示每行的正确数据,但是是的,我只得到文件的前 5%...
有人可以告诉我我在那里缺少什么吗?
我已经检查了第 9726 行周围的行,但每行似乎与任何其他行相同(格式)。
这是我用来阅读此内容的更多代码。抱歉,但我必须在那里使用 MFC...
std::wifstream file(strImportfile);
file.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
std::wstring strLine;
int iCountRows = 0;
while (std::getline(file, strLine)) {
++iCountRows;
}
file.close();
file.open(strImportfile);
file.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
CDatenbank db;
db.Open(strDatenbank);
if(!db.m_db.IsOpen())
{
AfxMessageBox(_T("Datenbank konne nicht geöffnet werden"));
return FALSE;
}
CStatusWaitDlg dlgWait;
dlgWait.ShowWaitDlg(_T("Bitte warten") , iCountRows);
//Lagerlängen bereinigen
//CDaoDeleteAll(db.m_pLagerlaenge);
int iRow = 0;
while (std::getline(file, strLine)) {
CString sRowInfo;
sRowInfo.Format(L"%i / %i", iRow, iCountRows);
iRow++;
dlgWait.SetMessage(L"Importing " + sRowInfo);
dlgWait.StepWaitDlg();
CString sLine = strLine.c_str();
...
}