问题标签 [cfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2035 浏览

c++ - 如果 CFile::Write 抛出异常会发生什么?

假设写操作中途抛出异常。文件中是否写入了任何数据,或者文件中没有写入数据?

0 投票
1 回答
937 浏览

c++ - 在CFile对象的写入或读取过程中文件指针可以改变吗

我有一个 CFile 对象,它可以被多个线程访问。有可能一个线程正在向该文件写入数据,而另一个线程正在从该文件中读取数据。我想知道这个政策有什么不安全的地方吗?文件指针可以在写入或读取过程完成之前更改吗?答案是肯定的,如何避免可以同时读写的多线程的不安全性?

非常感谢你!

0 投票
1 回答
1531 浏览

c++ - 关于 CFile Seek 的问题

我正在使用 MFC CFile Seek 功能。我有一个关于寻找文件长度的问题。

MSDN:备注

Seek 函数允许通过绝对或相对移动指针指定的量来随机访问文件的内容。在寻道期间实际上没有读取数据。如果请求的位置大于文件的大小,则文件长度将扩展到该位置,不会抛出异常。

根据 MSDN,文件长度将被延长。但是之后cfile.Close(),文件保持不变。为什么?非常感谢!

0 投票
3 回答
11242 浏览

c++ - 如何从 Unicode 中的 CFile::Read() 文件中获取 CString 对象?

字符集是 Unicode。我想将一个 CString 类型的字符串写入一个文件,然后再从文件中读出它。我使用 CFile::Write() 方法将字符串写入文件:

这是一个问题:我想从包含 strSample 内容的文件中获取 CString。我该怎么做?

非常感谢!

0 投票
1 回答
659 浏览

c++ - 无法使用函数 Cfile 在 MFC 中读取文件中的内容?

如果我在文件中手动写入内容,我将无法读取文件中的内容...如果现有内容已经能够读取内容...但是如果我去手动在文件中写入内容并尝试阅读我无法阅读我编辑的内容..检查下面我用来阅读的代码....

0 投票
3 回答
36849 浏览

c++ - UTF-8、CString 和 CFile?(C++,MFC)

我目前正在开发一个专门使用 UTF-8 的 MFC 程序。在某些时候,我必须将 UTF-8 数据写入文件;为此,我使用 CFiles 和 CStrings。

当我将 utf-8(更准确地说是俄语字符)数据写入文件时,输出看起来像

等等。这肯定不是 utf-8。要正确读取这些数据,我必须更改我的系统设置;将非 ASCII 字符更改为俄语编码表确实有效,但随后我所有基于拉丁语的非 ASCII 字符都会失败。无论如何,我就是这样做的。

我错过了什么吗?我应该改用别的东西吗?有什么我错过的吗?程序员们,我会为您的智慧和经验而努力。

编辑:当然,正如我刚刚提出的一个问题,我终于找到了一些可能很有趣的东西,可以在这里找到。我想我可能会分享它。

编辑2:

好的,所以我将 BOM 添加到我的文件中,该文件现在包含中文字符,可能是因为我没有将我的行转换为 UTF-8。添加我做的bom...

在那之后,我添加了...

但后来我无法编译,因为我真的不知道如何获得 TestLine 的长度。strlen 似乎不接受 TCHAR。 已修复,改为使用 1000 的静态长度。

编辑 3:

所以,我添加了这段代码......

它编译得很好,但是当我查看我的新文件时,它与我没有所有这些新代码时完全相同(例如:Ðàñïå÷àòàíî:)。感觉就像我没有向前迈出一步,虽然我想只有一件小事让我与胜利分开。

编辑4:

正如 Nate 所要求的,我删除了之前添加的代码,我决定改用他的代码,这意味着现在,当我要添加我的行时,我已经......

一切都编译得很好,但是俄语字符显示为???????。越来越近,但仍然不是那样。顺便说一句,我要感谢所有试图/试图帮助我的人,非常感谢。我已经坚持了一段时间了,我等不及这个问题消失了。

最终编辑(我希望)通过改变我第一次获得 UTF-8 字符的方式(我在不知道的情况下重新编码),这与我输出文本的新方式是错误的,我得到了可以接受的结果。通过在我的文件开头添加 UTF-8 BOM 字符,它可以在其他程序(如 Excel)中读取为 Unicode。

欢呼!谢谢大家!

0 投票
1 回答
3374 浏览

visual-c++ - 从 CStdioFile::Open() 获取错误消息?

如果 CStdioFile::Open 失败,我希望能够报告错误的原因。

但是,它似乎从不抛出异常。另外,当我尝试以下操作时:

一个断言在 exc.GetErrorMessage 的某个低处被绊倒:

我读过当我不使用 try-catch 块时会发生这种情况。但是,当 Open 不抛出任何异常时,为什么要使用 try-catch 块呢?

关于如何报告打开错误的任何想法都会有所帮助!

0 投票
1 回答
1788 浏览

c++ - 有什么办法可以加快频繁的文件写入操作?文件

我的任务是经常和保证将一小部分数据写入文件。它是某种类型的日志记录系统,必须保证将数据保存到磁盘的安全性和速度。我发现刹车出现在经常调用的 Flush() 函数中。所以,我决定摆脱它。

我使用了禁止缓冲和缓存数据的标志(osNoBuffer 和 writeThrough)。在此之后,据我了解,我可以在不使用 flush() 的情况下执行文件 I/O 操作(将数据写入文件)?另一个问题。我如何理解数据肯定是写入磁盘而没有缓存和缓冲的?它是做我想做的事情的正确方式,还是可能是加快频繁文件写入操作的另一种方式?

0 投票
1 回答
347 浏览

c++ - CFile 写入一些垃圾值

我在文件中写入了一些数据。但它没有正确写入。代码:

它将文件显示为 在此处输入图像描述

0 投票
1 回答
1248 浏览

c++ - CFile 读取 0 个字节

使用 CFile 时,出于某种原因,我对 read() 的调用在第一次调用后返回 0 个字节

当我知道文件长度明显更多时,它告诉我文件长度只有 72 个字节。我保存了一堆以空字符结尾的字符串。例如“你好”,我怀疑 CFile 类在构造时会查找第一个 NULL 字符并将其称为文件结尾。我尝试使用 setLength() 函数,但这给了我一个错误

如何阅读文件的其余部分?

编辑:

我应该提到我的项目设置为用 ascii 读取写入。而且文件也是用ascii写的