gpt4 book ai didi

c++ - 使用 fstream 的“访问冲突”

转载 作者:行者123 更新时间:2023-11-30 04:04:36 24 4
gpt4 key购买 nike

#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
char r;
fstream file1("text.txt", ios::in |ios::binary);
fstream file2("text.txt", ios::out | ios::binary);
r='r';
for(int i=0; i<100; i++)
file2.write((char*)r, sizeof(char));
while(!file1.eof())
{
file1.read((char*)r, sizeof(char));
cout<<r<<"\n";
}
file1.close();
file2.close();
getch();
}

当我在 vc++ 2010 中运行它时,在运行时出现以下错误:

Unhandled exception at 0x55361f68 (msvcp100d.dll) in file io.exe: 0xC0000005: Access       violation reading location 0x00000072.

是什么导致了这个错误?这是在阅读该行时发生的:

file2.write((char*)r, sizeof(char));

我做错了吗?如果是,请为我指出(提前致谢)。

更新:我仍然没有得到预期的输出(在将 (char*)r 更正为 (char*)&r 之后)。我得到的输出只是:r。我不应该期望从“r”开始显示 100 个字符吗?如果没有,请告诉我原因并提前致谢。

最佳答案

你需要

 file1.read((char*)&r, sizeof(char));

 file1.read(&r, sizeof(char));

关于c++ - 使用 fstream 的“访问冲突”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23684646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com