0

我有一个需要从 .txt 文件中读取数据的 C++ 应用程序。我已经让这个应用程序工作了大约 8-9 个月,但是在更改了应用程序的另一部分之后,它在任何对 getline() 的调用中都会出现“访问冲突”错误。

这是我的代码:

std::string line;
std::ifstream config;
config.open(fileName);

if(config.is_open()) {

    while(config.good())
    {
        std::getline(config, line);
        //Other code to do stuff with the string "line".
    }

我不知道为什么现在会发生这种情况,这可能与某处的某些 std 库 dll 有关吗?

我完全不知所措。

作为一种快速修复,是否有另一种简单的方法来逐行读取文件,这可能会绕过这个问题?

谢谢。

哦,这是错误信息:

0xC0000005:访问冲突写入位置 0x00000014。

4

2 回答 2

1

这不是您问题的答案,而是一般性的回答。

不要fstream从 cplusplus.com 复制代码,您的示例应该是:

std::string line;
std::ifstream config(fileName);

while (std::getline(config, line))
{
    //Other code to do stuff with the string "line".
}
于 2012-06-01T15:34:45.413 回答
0

确保替换链接器中的所有调试 .lib 并用发布版本替换它们如果您使用 Visual C++ 进行发布构建。

例如:属性 -> 链接器 -> 输入 -> 附加依赖项(从msvcrt.lib (release)替换msvcrtd.lib (last char 'd' for debug lib) )

于 2015-03-11T02:50:16.407 回答