C++ Ifstream无法打开具有AMDINISTREAM权限的文件

C++ Ifstream无法打开具有AMDINISTREAM权限的文件,c++,file,text,ifstream,C++,File,Text,Ifstream,我使用这段代码试图打开和读取文件(不是空的),但是ifstream没有工作-它无法打开文件:我添加了文件打开检查,它显示ifstream甚至没有(无法)打开文件 我授予了该程序的管理员权限,但ifstream仍然无法读取该文件 我还试图找到一个路径,ifstream将在其中读取该文件,但没有成功,最后我尝试使用绝对路径打开该文件,但结果是相同的 该文件位于程序的根文件夹中,但我将其放在了所有位置,没有任何更改 #include <iostream> #include <stri

我使用这段代码试图打开和读取文件(不是空的),但是ifstream没有工作-它无法打开文件:我添加了文件打开检查,它显示ifstream甚至没有(无法)打开文件

我授予了该程序的管理员权限,但ifstream仍然无法读取该文件

我还试图找到一个路径,ifstream将在其中读取该文件,但没有成功,最后我尝试使用绝对路径打开该文件,但结果是相同的

该文件位于程序的根文件夹中,但我将其放在了所有位置,没有任何更改

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main() {
    string s;
    ifstream file("fix.txt");
    if (file)
        cout << "SUCCESSFULL OPENING" << endl;

    while (getline(file, s)) {
        cout << s << endl;
        s += "+";
        cout << s << endl;
    }

    file.close();

    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
字符串s;
ifstream文件(“fix.txt”);
如果(文件)

cout通过激活流上的异常,您可以访问更详细的错误代码

file.exceptions(std::ios_base::failbit);
然后,你可以通过写作获得更多的细节

try {
   file.open("fix.txt");
}
catch(std::ios_base::failure& f) {
    // f.what() contains a message, f.code() returns a std::error_code
}

通过激活流上的异常,您可以访问更详细的错误代码

file.exceptions(std::ios_base::failbit);
然后,你可以通过写作获得更多的细节

try {
   file.open("fix.txt");
}
catch(std::ios_base::failure& f) {
    // f.what() contains a message, f.code() returns a std::error_code
}

你如何运行你的程序?从哪里运行?当你运行你的程序时,它的当前目录是什么?它是否与你试图读取的文件所在的位置相同?你确定吗?@一些程序员,我只是使用Visual Studio IDE运行文件,我无法找到,程序的当前目录是什么,但我将文件放在了该程序的每个文件夹中am有并且没有效果。当从Visual Studio运行时,默认的当前目录将是项目根目录IIRC(或者可能是工作区根目录?)。它不是可执行程序所在的位置。你可以在项目设置中更改目录。你如何运行你的程序?从哪里运行?当你运行程序时,它的当前目录是什么?它与你试图读取的文件所在的位置相同吗?你确定吗?@某个程序员,我只是使用Visual Studio IDE运行文件,我无法找到程序的当前目录,但我将文件放在程序的每个文件夹中,并且没有效果。从Visual Studio运行时,默认的当前目录将是项目根目录IIRC(或者可能是工作区根目录?)。它不是可执行程序所在的位置。您可以在“项目设置”中更改目录。