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

std::getline()访问冲突,用于工作,但可以';我现在不能读取任何文件 我有一个C++应用程序,需要从.txt文件读取数据。我让这个应用程序工作了大约8-9个月,但在更改了应用程序的另一部分后,它在对getline()的任何调用中都会出现“访问冲突”错误,c++,file-io,getline,C++,File Io,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::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


这不是你问题的答案,而是一个一般性的回答

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

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

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

<> P>确保您从链接器中替换所有调试.LIBs,如果使用VisualC++进行发布版本,则用它们替换版本。
例如:属性->链接器->输入->其他依赖项(从msvcrt.lib

操作系统中替换msvcrt.lib(调试库的最后一个字符“d”)

?编译程序?(让我猜猜,Windows?VisualC++)?什么类型的代码被牵涉?L,因为地址冲突0x14的访问违反意味着你可能在取消<代码> char < /代码>。像这样的低内存几乎总是操作系统内存,并且几乎总是寻址得足够低,只有取消对字符的引用才能做到这一点。你是否访问了<代码> STD::String STD::GETLINE < /> >:<代码> STD::String Strue以确认其<代码> STD::GETLINE < /C> >而不是文件许可问题。我在Windows 7 64位和VisualStudioC++ 2010上。在使用SFML、ffmpeg等的代码中发生了许多其他事情。但是在程序开始时,这一位是非常孤立的,因为设置在开始时是从这个txt加载的。哦,我是64位的,它是一个32位的应用程序,所以我不知道这是否是一个问题?它一直是一个32位的应用程序,并且一直是跨(3个不同的)64位应用程序开发的。啊,好吧,cplusplus的东西不可靠/过时吗?还有,这是如何解决问题的?它没有,我说这不是问题的答案。如果你愿意的话,你可以自由下注,我更关心鼓励好的风格(我认为有用),而不是关心我的SCORE。