std::getline() 访问冲突,以前可以工作,但现在无法从任何文件中读取
std::getline() access violation, used to work but can't read from any file now
我有一个C++应用程序需要从.txt文件中读取数据。我已经让这个应用程序工作了大约 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。
这不是您问题的答案,而是一般的回答。
不要从 cplusplus.com 复制fstream
代码,您的示例应该是:
std::string line;
std::ifstream config(fileName);
while (std::getline(config, line))
{
//Other code to do stuff with the string "line".
}
请确保替换链接器中的所有调试 .lib,并将其替换为发布版本 如果您将视觉C++用于发布版本。
例如:属性 -> 链接器 -> 输入 -> 其他依赖项(替换 msvcrt.lib(最后一个字符"d"表示调试库)从 msvcrt.lib(发布))
相关文章:
- C++用于从流中读取二进制值的任何标准库
- 当我在将文件读取到C字符串的2D数组后尝试对任何内容进行定制时,C++分段错误
- 将文本文件读取到2D数组中,但数组开始为超过数组[39][]的任何内容输出胡言乱语
- 为什么ifstream没有读取任何内容
- C++ - 将任何文件的字节读取到无符号字符数组中
- C++使用用户名/SID 或备用读取任何窗口用户 HKEY
- 内核模式驱动程序可以在任何进程上执行读取进程内存吗?
- C 读单词读取文件,而没有任何符号
- 我可以在没有任何锁的情况下从不同的线程读取内存缓冲区吗?
- std::memcmp 可以读取超过第一个差异的任何字节吗?
- 如何在Qt中为任何QLabel设置可访问的名称,我们可以使用Windows讲述人读取
- 无法使用 QSerialPort 读取任何内容
- 是否有任何方法可以在用户输入文本时读取字符
- 读取任何与PC兼容的赛车方向盘输入
- 读取C 中的二进制文件的任何文件
- 套接字记录未读取任何消息
- 在 C++ 中立即设置故障位(在读取任何字节之前)
- 如何仅当字符串流包含任何换行符时才从字符串流中读取行
- 读取 C++ 中的文本文件不显示任何输出
- 似乎没有任何读取文件的方法可以工作,所有方法都不返回任何东西-C++