如何在C ++中将数据输出到指定的文件夹

时间:2015-06-16 11:07:00

标签: visual-c++

在vs2010中,我想将我的数据输出到指定的文件夹,例如'C:\Users\USTC\Desktop\Data_Term',该怎么做?

如果我这样写:

FILE *out = fopen("CoeffMatrix.txt","w");
...
fclose(out);

它始终将数据输出到项目文件夹。

1 个答案:

答案 0 :(得分:0)

您可以使用SHGetKnownFolderPath查找桌面和其他特殊文件夹的路径。

std::wstring desktop;

wchar_t* wbuf = new wchar_t[MAX_PATH];
SHGetKnownFolderPath(FOLDERID_Desktop, 0, 0, &wbuf);
desktop = wbuf;
CoTaskMemFree(wbuf);

您应该使用完整路径名。但是,此函数必须是Unicode。如果程序是ANSI而目标计算机是非拉丁语的,那么事情会变得复杂。在这种情况下,您可以使用SetCurrentDirectoryW(wbuf)

等功能
SetCurrentDirectoryW(desktop); //remember to change this back!
FILE *out = fopen("CoeffMatrix.txt","w");
//...