繁体   English   中英

无法使用 ifstream 打开文本文件

[英]Cannot open text file using ifstream

ifstream fin;
fin.open("‪C:\\Users\\Zach\\Desktop\\input.txt");
if (!fin) 
{
    cout << "e";
}

e 正在打印我是使用完整路径还是仅使用资源文件中的 input.txt

如果文件存在,请确保正确指定了路径。 由于您在 Windows 上运行,您可以使用以下代码验证可执行文件的完整路径。

#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>

#define BUFSIZE 4096

std::string getExePath()
{
    char result[BUFSIZE];
    return std::string(result, GetModuleFileName(NULL, result, BUFSIZE));
}

int main()
{
    std::ifstream infile("input.txt");
    if (infile.is_open())
    {
        std::cout << "Success!" << std::endl;
        infile.close();
    }
    else
    {
        std::cout << "Failed to open input.txt!" << std::endl;
        std::cout << "Executable path is ->" << getExePath() << "<-" << std::endl;
    }
    return 0;
}

这将允许您验证输入文件的路径是否正确,假设它与您的可执行文件并置。

您需要使用fin << "string";将输出定向到ifstream对象中fin << "string"; 而不是通过cout定向到标准输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM