0

我现在使用Visual C++ 2010打开一个 txt 文件。

fp = fopen("E:\\CProg\\Huffman\\Debug\\Huffman.txt","r"); //Right
//Wrong
//fp = fopen(".\\Huffman.txt","r");
//fp = fopen("\\Huffman.txt","r");
//fp = fopen("Huffman.txt","r");

在VB.NET中,我曾经这样写:Application.Startpath & "\"。那么我如何在C中制作它?

4

1 回答 1

2

相对于什么?在“所有相关平台”上,如果您使用的文件名不是绝对的,它将相对于当前目录进行解析。

以下是针对 Windows 的。

如果您正在编写控制台应用程序,则该应用程序将从当前目录开始,该目录设置为命令提示符显示的任何内容。如果没有进一步的研究,我无法判断 GUI 应用程序的初始当前目录是什么。

如果您希望文件名与安装目录相关,则必须使用 Win32 函数 GetModuleFileNameW() 之类的东西并从那里开始工作(该函数为您提供 exe 文件的路径名;删除最后一个组件以获取目录,并附加您要附加的任何路径)-

没有直接的方式可以说“我希望相对于安装目录使用此文件名”。

于 2012-07-15T15:42:49.563 回答