CPP 读取文件但 EXE 不读取
CPP Reads from File but EXE Doesn't
.cpp文件从.txt文件中读取,编译,运行,完美输出。我希望将输出保存到 .txt 文件,因此我从命令提示符访问该程序。
我正在使用 %PATH%Program.exe>%PATH%P4RESULTS.TXT
它运行程序,但 P4RESULTS.TXT 总是显示 "Unable to read file. Program terminating." 我没有移动或重命名文件 - 它在 .cpp 中。我检查了文件扩展名,看看我是否对 inFile (.txt.txt) 进行了双重命名,但事实并非如此。
有人见过这样的东西吗?有什么明显的我想念的吗?我的输入文件打开方法包括在下面。只是困惑为什么它在 VS2013 中而不是在 .exe 中看到和读取文件。谢谢
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define TABLESIZE 100
#define KEYSIZE 4
#define EMPTYKEY "----"
#define DATAFILE "P4DATA.txt"
using namespace std;
int main(void)
{
ifstream *inFile;
InitTable(T, TABLESIZE);
inFile = new ifstream();
inFile->open(DATAFILE, ifstream::in);
if (!inFile->is_open())
{
cout << "Unable to open data file. Program terminating.\n";
return 0;
}//end inFile check
}
%PATH%
设置为一系列 ; 分隔的目录,用于在当前目录中不存在可执行文件时定位可执行文件。尝试使用 mypath
代替 path
并将 mypath
设置为可执行文件的目录名
set "mypath=c:\wherever\whatever"
pushd "%mypath%"
"%mypath%\yourprogram.exe">"%mypath%\P4RESULTS.TXT"
popd
引号克服了 file/directorynames 中的空格问题。 set
命令中的引号确保行中的尾随空格不包含在分配给 mydir
.
的值中
pushd/popd 仪式会暂时将当前目录更改为 mypath
。实际上,在那种情况下,在 .exe
行中引用 mypath
是没有必要的。
或
set "mypath=c:\wherever\whatever"
pushd "path to directory containing p4data.txt"
"%mypath%\yourprogram.exe">"%mypath%\P4RESULTS.TXT"
popd
也可以解决问题
.cpp文件从.txt文件中读取,编译,运行,完美输出。我希望将输出保存到 .txt 文件,因此我从命令提示符访问该程序。
我正在使用 %PATH%Program.exe>%PATH%P4RESULTS.TXT
它运行程序,但 P4RESULTS.TXT 总是显示 "Unable to read file. Program terminating." 我没有移动或重命名文件 - 它在 .cpp 中。我检查了文件扩展名,看看我是否对 inFile (.txt.txt) 进行了双重命名,但事实并非如此。
有人见过这样的东西吗?有什么明显的我想念的吗?我的输入文件打开方法包括在下面。只是困惑为什么它在 VS2013 中而不是在 .exe 中看到和读取文件。谢谢
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define TABLESIZE 100
#define KEYSIZE 4
#define EMPTYKEY "----"
#define DATAFILE "P4DATA.txt"
using namespace std;
int main(void)
{
ifstream *inFile;
InitTable(T, TABLESIZE);
inFile = new ifstream();
inFile->open(DATAFILE, ifstream::in);
if (!inFile->is_open())
{
cout << "Unable to open data file. Program terminating.\n";
return 0;
}//end inFile check
}
%PATH%
设置为一系列 ; 分隔的目录,用于在当前目录中不存在可执行文件时定位可执行文件。尝试使用 mypath
代替 path
并将 mypath
设置为可执行文件的目录名
set "mypath=c:\wherever\whatever"
pushd "%mypath%"
"%mypath%\yourprogram.exe">"%mypath%\P4RESULTS.TXT"
popd
引号克服了 file/directorynames 中的空格问题。 set
命令中的引号确保行中的尾随空格不包含在分配给 mydir
.
pushd/popd 仪式会暂时将当前目录更改为 mypath
。实际上,在那种情况下,在 .exe
行中引用 mypath
是没有必要的。
或
set "mypath=c:\wherever\whatever"
pushd "path to directory containing p4data.txt"
"%mypath%\yourprogram.exe">"%mypath%\P4RESULTS.TXT"
popd
也可以解决问题