【问题标题】:unable to open file in visual studio无法在 Visual Studio 中打开文件
【发布时间】:2020-11-09 15:00:32
【问题描述】:

我正在使用 Visual Studio 作为 IDE 学习 C++。我目前正在做 io 流,但是当我尝试打开文件时,程序并没有打开该文件。

这里是代码 -

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <vector>

int main()
{
    std::ifstream file;

    file.open("Text.txt");

    if (file.is_open())
    {
        std::cout << "open" << std::endl;
    }
    else
        std::cout << "not open" << std::endl;
 
}

我得到的输出为not open

感谢任何帮助,谢谢

【问题讨论】:

  • 所有非绝对的文件路径(以斜杠开头)都是相对的。它们是相对于当前正在运行的程序working directory。当您从 IDE 运行程序时,工作目录很可能不是您认为的那样。您可以更改运行设置以显式设置工作目录,或更改您的程序以使用文件的绝对路径。
  • 我很惊讶没有规范的答案:ifstream can't find file
  • 这可能是更好的答案:stackoverflow.com/questions/57281750/…
  • @Botje 如果你有时间,那么也许你可以合并不同的来源并写出那个规范的答案? :)
  • @Someprogrammerdude 我接受的答案对我有用。

标签: c++ io fstream iomanip


【解决方案1】:

使用 Visual Studio 时,需要将文件保存在默认生成可执行文件的目录中。这通常位于解决方案目录中名为 Debug/Release 的文件夹下,具体取决于您的配置。检查项目设置以查看生成可执行文件的位置并将文件复制到那里。

【讨论】:

  • 嘿,将 open 行更新为 - std::ifstream file{ "C:\Users\Kakshipth\Documents\VS\hola\Debug\test.txt" };,这是绝对路径,这是我的 .exe 文件,但我仍然得到相同的输出
  • 对于 Visual Studio,默认工作目录是项目根目录 IIRC,而不是可执行文件的位置。
  • @default-303 请记住,反斜杠在字符串内部是特殊的,需要用反斜杠转义。
  • @so 我应该在C:\Users\Kakshipth\Documents\VS\hola 中创建一个.txt 文件,因为hola 是我的项目的名称
  • 这里有一个提示。上面的答案对于 Visual Studio 来说是正确的,但是如果您对文件需要放在哪里感到困惑,请尝试制作相同的程序,而不是 write 一个不读取它的文件。然后在您的计算机上查看该文件出现的位置。那是您需要放置文件以供阅读的同一个地方。
【解决方案2】:

我在从 cpp 文件打开 csv 文件时遇到了类似的问题,我找到了一个解决方案,方法是将我的 csv 文件放在我的源文件,尤其是 cpp 文件(我试图从中打开它)所在的文件夹中.

【讨论】:

    【解决方案3】:

    1)确保你给的路径是正确的。

    2)确保您尝试打开的文件已被其他进程使用。

    1. 确保文件存在给定的路径,并尝试提供文件的完整路径,如果可行,然后进行调整。

    2. 尝试手动打开文件并检查文件是否有问题。

    3. 检查您的文件是否受只读或类似保护。

    4. 尝试使用下面的示例代码,并回复我您遇到的错误。

    file reading sample

    file writing sample

    【讨论】:

    • 我尝试了 file reading sample 并收到此错误 = Cannot open include file: 'stdafx.h': No such file or directory
    • 如果您收到错误 stdafx.h' No such file or directory,那么这可能是 Visual Studio 安装的问题。尝试修复您的视觉工作室,然后尝试
    • 如果你想提供源代码直接添加到答案中,不要使用外部链接。答案必须包含回答问题所需的所有必要信息,而无需点击链接。
    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 2016-09-11
    • 2016-03-05
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2021-12-17
    • 2021-04-21
    相关资源
    最近更新 更多