【问题标题】:How to copy a .txt file into your projects directory? Visual Studio如何将 .txt 文件复制到您的项目目录中?视觉工作室
【发布时间】:2018-03-16 00:54:25
【问题描述】:

我的桌面上有一个名为 random.txt 的文件,但由于某种原因 VS 不会打开它,我认为它与目录有关,但 idk。这段代码有问题吗?如何让它读取文件?

#include<iostream>
#include<fstream>
using namespace std;

int main()
{
ifstream infile;
int num, count = 1, total = 0, avg;

infile.open("Random.txt");
if (infile)
    while (infile >> num)
    {
        cout << num << endl;

    }
else
    cout << "The file did not open" << endl;

infile.close();
return 0;
}

【问题讨论】:

  • 为什么你希望你的代码神奇地知道Random.txt 位于桌面文件夹中很远的地方,离你的可执行文件很远?当您从佛罗里达州迈阿密邮寄信件时,您是否希望写一封 123 Main Street 的信知道您指的是加利福尼亚州洛杉矶的信件,但不包括城市和州?
  • 好的,那我怎么让它读取文件呢?
  • 当然,包括带有文件名的目录。或者将文件(使用 Windows 资源管理器)复制到与可执行文件相同的文件夹中。 (供将来参考,Visual Studio 不是一种编程语言;您编写代码的语言是 C++,您应该使用该标签而不是 VS。VS 是您键入代码、构建应用程序的 IDE。 C++ 是你编写代码的语言。它们不是一回事。)

标签: visual-studio fstream ifstream


【解决方案1】:

@Ken White 所说的完全正确。只是为了澄清 - 您有三种可能的解决方案:

1 - 更改文件路径

infile.open("C:\User\walshline\Desktop\Random.txt");

更改与您的桌面位置匹配的路径。这有一个巨大的缺点,即您无法将软件部署到另一台计算机上,因为路径会不同。

2 - 询问用户文件路径

在启动时,您可以向用户询问正确的文件路径。

std::string path;
std::cout << "Please select your file path: " << std::endl;
std::cin >> path;

这是最灵活但对用户来说最烦人的解决方案。想象一个包含数百个依赖文件的巨大程序。您真的不想要求用户插入每个位置。但如果您的文件经常更改,这是一个完美的解决方案。

3 - 将文件移动到您的可执行位置

当您构建程序(编译)时,VS 会将可执行文件和所有文件一起放在项目结构内的输出目录中(这也取决于您的“运行配置”)。

对我来说,路径(带有默认 VS 和项目设置)如下所示。

C:\Users\XXX\Documents\Visual Studio 2017\Projects\Project_Folder\Project\bin\Debug

您可以将Random.txt 复制到此目录或项目结构中并设置标志copy always(然后它将被复制到输出目录)。

HTH

【讨论】:

    猜你喜欢
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多