gpt4 book ai didi

C++ 使用文件不工作初学者

转载 作者:行者123 更新时间:2023-11-30 02:35:29 26 4
gpt4 key购买 nike

#include <iostream>
#‎include‬ <fstream>

using namespace std;

int main()
{
ofstream buckyFile;
buckyFile.open("tuna.txt");
buckyFile << "Test";
}

运行此命令后,出现“编码错误”和“聚合‘std::ofstream buckyFile’的类型不完整且无法定义|”。

这是我第一次在代码块中使用文件,所以不要评判我。我一直在网上寻找解决方案,但找不到。请帮忙

最佳答案

如果您将确切的给定代码剪切并粘贴到 Visual Studio(一个默认代码页为 1252 - 如果您在另一个代码页上,它可能更宽容)并尝试保存它,您会得到一个线索:

Some Unicode characters in this file could not be saved in the current codepage.

所以,很明显文件本身有什么东西导致了问题。另一个线索是,虽然第一个 #include 在 Visual Studio(以及 Stack Overflow 代码片段)中正确地进行了颜色渲染,但第二个不是。这似乎表明 Visual Studio 本身在解释该行时遇到了问题,尽管它看起来没问题。

这种事情通常是由于存在“有趣”的 Unicode 代码点引起的,例如不间断或零宽度空格,或者看起来像普通拉丁字符但可能在fact 是希腊语或西里尔语(或其他)。

因此,将该行复制到 a page that interprets Unicode strings出现以下代码点:

0023   NUMBER SIGN
200E * LEFT-TO-RIGHT MARK
0069 LATIN SMALL LETTER I
006E LATIN SMALL LETTER N
0063 LATIN SMALL LETTER C
006C LATIN SMALL LETTER L
0075 LATIN SMALL LETTER U
0064 LATIN SMALL LETTER D
0065 LATIN SMALL LETTER E
202C * POP DIRECTIONAL FORMATTING
0020 SPACE
003C LESS-THAN SIGN
0066 LATIN SMALL LETTER F
0073 LATIN SMALL LETTER S
0074 LATIN SMALL LETTER T
0072 LATIN SMALL LETTER R
0065 LATIN SMALL LETTER E
0061 LATIN SMALL LETTER A
006D LATIN SMALL LETTER M
003E GREATER-THAN SIGN

我用星号 * 标记了有问题的代码点,以便更清楚地说明发生了什么。很可能该行是从包含这些方向格式控制字符的网页复制粘贴的。

因此,该行本身导致了您所看到的编码错误。 other 错误(不完整类型)无疑是由于 first 错误阻止了 fstream header 的实际包含。

解决方法很简单,只需重新输入当前行下方的行并删除原来的行即可。


任何能在上述帖子中找到复活节彩蛋的人都会得到红利:-)

关于C++ 使用文件不工作初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563970/

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