Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.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
从Windows任务栏执行ifstream时出现问题 在64位Windows 7机器上,我在Visual Studio C++ 2012中编写了一个非常简单的程序;它所做的只是使用std::ifstream打开一个文件并打印其内容 int main() { std::ifstream fileStream("Test.txt"); if (!fileStream.is_open()) { cerr<<"Error: "<<strerror(errno)<<endl; } else { std::string testString; getline(fileStream, testString); cout<<testString<<endl; } } intmain(){ std::ifstream fileStream(“Test.txt”); 如果(!fileStream.is_open()){ cerr_C++_Windows - Fatal编程技术网

从Windows任务栏执行ifstream时出现问题 在64位Windows 7机器上,我在Visual Studio C++ 2012中编写了一个非常简单的程序;它所做的只是使用std::ifstream打开一个文件并打印其内容 int main() { std::ifstream fileStream("Test.txt"); if (!fileStream.is_open()) { cerr<<"Error: "<<strerror(errno)<<endl; } else { std::string testString; getline(fileStream, testString); cout<<testString<<endl; } } intmain(){ std::ifstream fileStream(“Test.txt”); 如果(!fileStream.is_open()){ cerr

从Windows任务栏执行ifstream时出现问题 在64位Windows 7机器上,我在Visual Studio C++ 2012中编写了一个非常简单的程序;它所做的只是使用std::ifstream打开一个文件并打印其内容 int main() { std::ifstream fileStream("Test.txt"); if (!fileStream.is_open()) { cerr<<"Error: "<<strerror(errno)<<endl; } else { std::string testString; getline(fileStream, testString); cout<<testString<<endl; } } intmain(){ std::ifstream fileStream(“Test.txt”); 如果(!fileStream.is_open()){ cerr,c++,windows,C++,Windows,从任务栏重新启动应用程序的方式可能是一个实施细节,没有文档记录。固定的应用程序实际上是存储在您的配置文件中的快捷方式。如果此操作中断了您的应用程序,那么如果用户使用类似\yourapp\app.exe的路径手动启动您的应用程序,它也会中断 相对路径相对于工作目录,而不是可执行文件所在的目录 可以通过多种方式设置新进程的工作目录: 它可以从父进程继承 父进程可以在调用CreateProcess/ShellExecute 快捷方式(.LNK)可以指定工作目录 如果要在与.EXE相同的目录中打开文

从任务栏重新启动应用程序的方式可能是一个实施细节,没有文档记录。固定的应用程序实际上是存储在您的配置文件中的快捷方式。如果此操作中断了您的应用程序,那么如果用户使用类似
\yourapp\app.exe的路径手动启动您的应用程序,它也会中断

相对路径相对于工作目录,而不是可执行文件所在的目录

可以通过多种方式设置新进程的工作目录:

  • 它可以从父进程继承
  • 父进程可以在调用
    CreateProcess
    /
    ShellExecute
  • 快捷方式(.LNK)可以指定工作目录
如果要在与.EXE相同的目录中打开文件,则应根据
GetModuleFileName(0)
的结果构建完整路径(
PathRemoveFileSpec
PathAppend
可能会有所帮助)


如果您永远不打算从命令行接受文件名,则可以在打开文件之前手动更改工作目录。

可能工作目录不同?很可能工作目录会更改。如果使用绝对文件路径而不是相对文件路径,会发生什么情况?
GetModuleFileName
t他是一个可执行路径,它与当前的工作目录基本无关。@NathanOliver,正如我所说的,它是有效的。@AlgirdasPreidžius为什么在固定时会发生变化?