【问题标题】:Unable to write to file output.txt无法写入文件 output.txt
【发布时间】:2019-12-11 21:56:11
【问题描述】:

我正在尝试编写一个程序。第一个文件将被打开以供输入,第二个文件将被打开以供输出。 (假设第一个文件包含以句点结尾的句子。)程序将读取第一个文件的内容并将除每个句子的第一个字母之外的所有字母都变为小写,应将其变为大写。修改后的内容应该存放在第二个文件中。

我已经能够让我的代码工作,因为我成功地将 input.txt 中的内容转换为上述要求(所有句子都是小写的,除了每个句子中的第一个单词)。但是output.txt中没有出现这个内容

input.txtoutput.txt 都位于 main.cpp 旁边的同一目录中。

我尝试使用不同的 IDE,但没有任何效果。我也尝试在 output.txt 的位置附近移动,但也没有任何效果。

示例输入:谷歌的主页包含一个标有“我正在感受”的按钮 幸运”。当用户输入搜索并单击按钮时 用户将被直接带到第一个搜索结果,绕过 搜索引擎结果页面。

示例输出:Google 的主页包含一个标有“我是 感觉很幸运”。当用户输入搜索并点击 按钮用户将被直接带到第一个搜索结果, 绕过搜索引擎结果页面。

    string inFileName, outFileName;
    string line;
    char c;

    cout << "Enter input file name: ";
    cin >> inFileName;


    fstream fin, fout;
    fin.open(inFileName.c_str(), ios::in);
    fout.open(outFileName.c_str(), ios::out);


    if (fin.fail())
    {
        cout << "INPUT FILE DOES NOT EXIST (DNE)\n";
        system("pause");

        return 1;

    }

output.txt 中没有显示任何内容(它是空白的)。从我注意到这个命令fout &lt;&lt; line &lt;&lt; "." &lt;&lt; endl; 没有做任何事情。

[这是另一个屏幕截图]显示了我的终端中的内容以及 input.txtoutput.txt 中的内容:

您会注意到终端中显示了正确的转换,但我无法将终端中的文本转换为 output.txt

【问题讨论】:

  • "input.txt 和 output.txt 都在 main.cpp 旁边的同一个目录中。" 别管 main.cpp 在哪里 - 当前工作目录是什么你运行程序?
  • 请提供minimal reproducible example。我应该能够复制、粘贴和编译代码。尝试硬编码的变量名称。
  • 我的意思是像outFileName = "output.txt" 这样的硬编码文件名,而不是从用户那里读取它们。将您的代码减少到最低限度。删除用户输入。
  • 我认为这里的想法是删除变量以进行调试。对名称进行硬编码将对此有所帮助。
  • 解决问题后,您可以添加用户输入

标签: c++ file-io fileoutputstream


【解决方案1】:

每个源代码编译后,都会创建一个可执行程序。在 Windows 上,它具有 .exe 扩展名。该程序应该与您的源代码具有相同的名称。

尝试找到它的创建位置。它可以在temp 文件夹中,也可以在安装Visual Studio 的位置。

用于存储输出的文本文档 (.txt) 文件必须与可执行文件位于同一目录中。

我在我的设备上执行了你的程序(虽然是在 Code::Blocks IDE 上)。一切顺利。

【讨论】:

  • 我浏览了我的目录,但仍然找不到任何 .exe 扩展名。我正在使用 Visual Studio 2017。这是我的结果的屏幕截图:imgur.com/a/Q65GC6F
  • 可能是倒数第二个文件?将您的输出文本文档放在Debug 文件夹中,然后重新运行程序。
  • 截图中第二个文件的扩展名是什么?系统说它的类型是*Application",所以它应该是一个可执行文件(.exe)。
  • 你是对的@Meraj al Maksud,这是一个 .exe 文件。但是,当我将 output.txt 放在同一目录中时,它仍然没有做任何事情
  • 我当前的设置是 input.txt 与 main.cpp 位于同一目录中,而 output.txt 位于 Debug 中,与 .exe 文件位于同一目录中。但是,什么都没有改变,output.txt 仍然为空
【解决方案2】:

我同意以上所有答案,它们适用于所有用户。就我而言,尽管存在导致文件写入失败的分段错误。尝试纠正任何分段错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-18
    • 2020-07-24
    • 2021-02-19
    • 2017-04-08
    相关资源
    最近更新 更多