`
lbyzx123
  • 浏览: 478033 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

fstream读写文件时,Invalid sharing flag

    博客分类:
  • c++
 
阅读更多

ofstream类的默认构造函数如下:

ofstream::ofstream(const char* filename, int mode = ios::out, int openport = filebuf::openport);

filename是要打开的文件名,
mode是打开的方式,
openport是打开文件的属性。

mode可以设置的方式如下:
ios::app         以追加的方式打开
ios::ate         文件打开后定位到文件尾
ios::binary     以二进制方式打开文件,默认是以文本方式打开
ios::in           文件以读(输入)方式打开
ios::out        文件以写(输出)方式打开
ios::trunc      如果文件存在,则把文件清空。
以上属性用“|”(按位或)连接起来。

openprot属性如下:
0     普通文件
1     只读文件
2     隐含文件
4     系统文件
以上属性可以用加或者按位或方式组织起来,比如1|2和3都代表既是只读又是隐含文件。

在windows操作系统中可以不要第三个参数,如果加入第三个参数,那第三个参数是打开文件的共享方式,也就是打开这个文件时,其他进程是否可以读写该文件。
共享方式参数可以是下面的值:
0x10 //_SH_DENYRW Denies read and write access to the file
0x20 //_SH_DENYWR Denies write access to the file
0x30 //_SH_DENYRD Denies read access to the file.
0x40 //_SH_DENYNO Permits read and write access
其他值都会报 "Invalid sharing flag "的错误。

ofstream hFile("c:\\1.txt", ios::out, _SH_DENYRW); // _SH_DENYRW is deny read and write
   
if (!hFile) // if the file could open, hFile is a handle, else is zero
   {
        cout
<< "write fail!" << endl;       cout << "access is denies,maybe the file is readonlys,or use deny read opened of other process." <<
endl;
    }

   
else{
        hFile
<< "by coderlee writes"
;
        cout
<< "write success!" <<
endl;
    }

    hFile.close();
// opened file need close.

分享到:
评论

相关推荐

    ofstream,ifstream,fstream读写文件

    但需要注意的是,fstream 默认在打开文件时不会追加数据,而是覆盖原有内容,所以要谨慎使用。 ```cpp #include &lt;fstream&gt; #include int main() { std::fstream file("all_io.txt", std::ios::in | std::ios::out...

    fstream文件读写

    C++ iostream对文件流操作,实现文件读写,简单方便。

    c++ 文件操作(fstream)

    其中,fstream 是 C++ 中一个重要的文件操作类库,提供了三个类:ifstream、ofstream 和 fstream,分别用于从文件读取、向文件写入和打开文件供读写。 1. 文件打开模式 在 C++ 中,文件打开模式是通过 ios 库中的...

    c++文件读写.pdf

    * ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 * ios::trunc:如果文件存在,把文件长度设为 0 可以用“或”把以上属性连接起来,如 ios::out|ios::binary。 二、关闭文件 打开的文件使用...

    C++动态链接库读写文件

    在C++中,文件操作主要通过`fstream`库来实现,包括`ifstream`(用于读取)、`ofstream`(用于写入)和`fstream`(同时读写)。基本的操作包括打开文件、读写数据以及关闭文件。例如,要写入文件,我们可以创建一个`...

    DBF读写文件 C++

    通常,我们会定义一个结构体或类来表示DBF的字段和记录,然后使用文件流(fstream)进行读写操作。 对于“一次查找一个”功能,我们可以设计一个函数,接收用户输入的查询条件,遍历记录数据,对比每个字段值,如果...

    用CFile类简单读写文件

    `CFile`类是MFC(Microsoft Foundation Classes)库提供的一种方便的文件操作接口,它封装了标准C++的`fstream`类,使得文件的读写操作更为简洁。本文将详细探讨如何使用`CFile`类进行简单的文件读写操作。 首先,...

    Linux Windows C++读写ini文件

    C++作为一门强大的系统级编程语言,自然支持对ini文件的读写操作。下面我们将详细介绍在Linux和Windows环境下,如何使用C++来处理ini文件。 **1. ini文件结构** ini文件通常由节(section)和键值对(key-value ...

    使用 <fstream> 类进行文件的 I/O 处理

    传统的文件 I/O 库如 Unix 的 &lt;io.h&gt; 和 &lt;stdio.h&gt; ,由于其程序接口的原因,在很大程度上...C++ 的 &lt;fstream&gt; 库则在文件的 I/O 方面提供了一个增强的、面向对象的、具有国际化意识的库。 希望本例对大家有所帮助!

    结构体序列化读写二进制文件类

    这有助于在读取文件时验证文件的正确性并解析数据。 2. 块写操作:为了提高性能,可能采用了分块写入的方式。这意味着数据不是一次性全部写入,而是分批写入。这样可以减少内存压力,特别是处理大量数据时。 3. 块...

    c__读写文件.doc

    - 在对象生命周期结束时,如果文件未被显式关闭,则会自动调用析构函数进行关闭。 ##### 6. 随机读写 - 通过移动文件读写指针可以在文件的任意位置进行读写操作。 - 使用 `seekg()` 和 `seekp()` 函数移动读写指针...

    C++文件读写_c++文件读写_文件操作c++_c++文件读写_

    在打开文件时,可以指定打开模式。常见的模式有: - `"r"`:只读模式,文件必须存在。 - `"w"`:写入模式,如果文件已存在,会被清空;不存在则创建新文件。 - `"a"`:追加模式,写入的数据追加到文件末尾,不会覆盖...

    文件读写 文件读写文件读写 文件读写

    在IT领域,文件读写是程序与数据交互的基础操作,无论是开发桌面应用、网页服务还是移动应用,都离不开对文件的处理。文件读写涉及多种技术,包括文本文件的读取与写入、二进制文件操作、流式处理、缓冲机制等。下面...

    c++:学籍管理系统(读写文件)

    当读取文件时,我们可以逐行读取并解析每条学生记录,然后将数据填充到结构体或类的实例中。例如: ```cpp while (inputFile &gt;&gt; student.name &gt;&gt; student.id &gt;&gt; student.age) { students.push_back(student); } ``...

    VC++文件读写示例

    在处理二进制文件时,可能需要使用`read()`和`write()`函数,而非插入符(`): ```cpp char buffer[1024]; inputFile.read(buffer, sizeof(buffer)); outputFile.write(buffer, inputFile.gcount()); ``` 错误处理...

    C C++ C++ Builder的各种文件读写操作总结

    C++ 文件读写操作总结 C++ 中的文件读写操作是编程过程中常用的操作之一,C++ Builder 提供了多种方法对文件进行操作。在本节中,我们将对 C++ 中的文件读写操作进行总结。 基于 C 的文件操作 在 ANSI C 中,对...

    基于c++的简易csv快速读写文件

    在读取CSV文件时,开发者可能采用了循环结构逐行读取,然后用`getline()`函数截取每一行,并根据逗号分隔值。例如: ```cpp std::string line; while (std::getline(inFile, line)) { std::stringstream ss(line);...

    Linux读写配置文件

    在C++中,我们可以使用标准库`fstream`来读写文本文件。`ifstream`用于读取,`ofstream`用于写入,而`fstream`则同时支持读写。首先,我们需要包含头文件`&lt;fstream&gt;`: ```cpp #include &lt;fstream&gt; ``` 为了实现跨...

Global site tag (gtag.js) - Google Analytics