Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试运行正在C+;中读取的文件时出错+;_C++_Visual Studio_File_Visual Studio 2012 - Fatal编程技术网

C++ 尝试运行正在C+;中读取的文件时出错+;

C++ 尝试运行正在C+;中读取的文件时出错+;,c++,visual-studio,file,visual-studio-2012,C++,Visual Studio,File,Visual Studio 2012,我正在尝试读取一个文件,以便能够平均出文件中列出的数字。我相信我的代码是正确的,但我在Visual Studio中不断收到一个错误,说明“无法启动程序…系统找不到指定的文件”。我要读取的文件“numbers.dat”在目录中,但它仍然显示此错误 我是C++新手,所以我想知道有没有人能帮上忙?p> 这是我的密码 #include <iostream> #include <fstream> #include <string> using namespace st

我正在尝试读取一个文件,以便能够平均出文件中列出的数字。我相信我的代码是正确的,但我在Visual Studio中不断收到一个错误,说明“无法启动程序…系统找不到指定的文件”。我要读取的文件“numbers.dat”在目录中,但它仍然显示此错误

我是C++新手,所以我想知道有没有人能帮上忙?p> 这是我的密码

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

using namespace std;

int main() {
    ifstream myfile;
    myfile.open("numbers.dat");
    int total = 0, count = 0, num;
    while (!myfile.eof()){
        myfile>>num;
        total += num;
        count++;
    }

    cout<<"The "<<count<<" numbers total "<<total<<" and average "<<total/count<<endl;
    myfile.close();
    system("pause");
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
ifstreammyfile;
myfile.open(“numbers.dat”);
int-total=0,count=0,num;
而(!myfile.eof()){
myfile>>num;
总数+=num;
计数++;
}

coutSpanky很可能是正确的,但要提供更多信息-

Visual Studio将您的程序编译到生成目录中。当您通过Visual Studio运行程序时,它将从生成目录中运行。默认情况下,生成目录与源代码不在同一文件夹中,因此您的程序将找不到与源代码混在一起的文件

可能的解决办法:

  • 您可以将该文件复制到生成目录中
  • 您可以更改生成目录
  • 可以使用绝对或相对文件路径指向正确的位置

    • 我不使用MSS进行开发,但通常的做法是,人们忽略了一件事,即程序启动的目录与您认为程序启动的目录不同

      例如,你有一个构建目录 d:\project\build

      已编译的二进制文件(.exe)位于 d:\project\build\debug目录


      嗯,您的numbers.dat可能位于d:\project\build目录下,而不是d:\project\build\debug目录下。

      您的文件是否与代码文件位于同一目录下?这是与您的问题无关的问题,但您需要阅读。我怀疑输出窗口中是否有特定消息,因为无法打开您的规范相反,该特定消息通常是因为Visual Studio试图加载可执行文件,因为调试对象根本无法加载。引导您跟踪这是项目配置错误还是缺少依赖项(例如redist DLL)因为这样一个简单的程序会很耗时,您最好将时间花在创建一个新的控制台项目、复制源代码以及尝试新的项目上。简短版本:“无法启动程序”意味着你的代码甚至没有加载;因此,你正在运行的代码是否能够打开你想要的文件还没有成为问题,因为你的代码根本没有运行,因为VS没有成功加载它。