如何用fstream打开软盘

发布于 2024-10-14 14:41:26 字数 480 浏览 8 评论 0原文

如何用fstream打开软盘? 我正在尝试这样的事情: 但它总是返回错误

#include <iostream>
#include <fstream>

using namespace std;

char a='k';

int main()
{
    fstream stream;
    stream.open( "\\\\.\\A:", ios::binary );

    if( stream.good() == false )
    {
            cout <<"Error";
    }

    for( int i = 0 ; i < 512 ; i++ )
    {
            stream >> a;
            //cout << a;
    }
    stream.close();
    cin.get();
    return 0;
}

How to open floppy disc with fstream?
I'm trying something like this:
but it always returns error

#include <iostream>
#include <fstream>

using namespace std;

char a='k';

int main()
{
    fstream stream;
    stream.open( "\\\\.\\A:", ios::binary );

    if( stream.good() == false )
    {
            cout <<"Error";
    }

    for( int i = 0 ; i < 512 ; i++ )
    {
            stream >> a;
            //cout << a;
    }
    stream.close();
    cin.get();
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆夏时光 2024-10-21 14:41:26

您不能使用 fstream 打开设备 - 只能打开该设备上包含的文件系统中的文件。您需要使用操作系统特定的功能来访问设备。

编辑:需要明确的是,可以使用 fstream 打开软盘设备,但这种对系统的访问级别超出了标准 C++ 库提供的抽象级别,因此应使用特定于操作系统的函数。

You cannot use fstream to open a device - only a file within the filesystem contained on that device. You need to use operating system specific functionality to access a device.

EDIT: To be clear, it might be possible to open the floppy device using fstream but this level of access to the system goes beyond the level of abstraction provided by the Standard C++ Library and so OS-specific functions should be used instead.

一身骄傲 2024-10-21 14:41:26

As described in the Remarks section of this MSDN documentation, device files should be opened with FILE_SHARE_READ|FILE_SHARE_WRITE sharing mode. By default, fstreams do not support this. You will need to directly open a handle to the file using the low-level win32 CreateFile API, then read/write using ReadFile and WriteFile. When done, close the handle with CloseHandle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文