【发布时间】:2012-05-26 08:56:19
【问题描述】:
我正在尝试使用 c++ 中的 win32 程序解析文本文件。有没有一种简单的逐行读取文本文件的方法?我的文本文件由我想存储在 char 数组(const char* cArray[67])中的字符串组成。这是我到目前为止所拥有的。我正在使用 CreateFile 和 ReadFile。我从 readfile 收到访问冲突错误(0x000003e6):
CDECK::CDECK():filename(".\\Deck/list.txt")
{
LPVOID data = NULL;
hFile = CreateFileA(filename, GENERIC_READ,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile == INVALID_HANDLE_VALUE)
MessageBox(NULL, L"Failed to CreateFile - 'hFile'", L"CDECK::CDECK()", MB_OK);
DWORD fileSize = GetFileSize(hFile, &fileSize);
DWORD read = -1;
if(!ReadFile(hFile, data, fileSize, &read, NULL))
{
DWORD err = GetLastError();
MessageBox(NULL, L"Failed to ReadFile - 'hFile'", L"CDECK::CDECK()", MB_OK);
}
return;
}
【问题讨论】:
-
太糟糕了,你不能为此使用 Python 之类的东西.....
-
你有直接使用winapi调用吗?您可以使用
std::ifstream读取数据,并将结果存储在std::vector<std::string>中吗? -
Win32 API 在使简单任务变得尽可能困难方面所做出的扭曲令人难以置信。用普通的旧 C++ 试试;简单。 Python、Ruby、Perl……简单、简单、简单。如果您知道自己在做什么,即使是好的旧 C 也不会太糟糕。但是在 Windows API 层中,你突然被一个虫洞射到了 Borg 的肚子里。
-
@DavidO win32 界面与 C 的打开/读取几乎相同