等待解惑_在桌面上生成一个txt文件,该如何处理
等待解惑_在桌面上生成一个txt文件
在桌面上生成一个txt文件,最近学c++的时候,有些疑惑,如果在桌面上生成一个txt文件,那么,代码中保存地址设置成才"C://users//administrator//desktop"的地址,然后,文件确实生成了,但是并没有在我的桌面上,原因是,我更改了用户名是叫clover,不是administrator,文件被生成在administrator目录下的desktop里了而非我当前的我当前用户目录下的desktop,如果把输出地址改成...clover//desktop的话,就可以顺利在桌面生成,
但是问题是,我不可能预测到别的电脑上是否更改用户名称,也不知道到底改成什么,原谅我问这么傻的问题,
我想应该有一些其他的方法可以完成这样的操作,而不是像我这样做~~,麻烦点拨一下我吧,这里先谢过了~~
——cloverever
------解决方案--------------------
windows上有系统api支持读取用户的默认路径。其中包括我的文档,我的收藏,桌面之类的路径
------解决方案--------------------
我教你。
在桌面上生成一个txt文件,最近学c++的时候,有些疑惑,如果在桌面上生成一个txt文件,那么,代码中保存地址设置成才"C://users//administrator//desktop"的地址,然后,文件确实生成了,但是并没有在我的桌面上,原因是,我更改了用户名是叫clover,不是administrator,文件被生成在administrator目录下的desktop里了而非我当前的我当前用户目录下的desktop,如果把输出地址改成...clover//desktop的话,就可以顺利在桌面生成,
但是问题是,我不可能预测到别的电脑上是否更改用户名称,也不知道到底改成什么,原谅我问这么傻的问题,
我想应该有一些其他的方法可以完成这样的操作,而不是像我这样做~~,麻烦点拨一下我吧,这里先谢过了~~
——cloverever
------解决方案--------------------
windows上有系统api支持读取用户的默认路径。其中包括我的文档,我的收藏,桌面之类的路径
------解决方案--------------------
我教你。
- C/C++ code
#include <iostream> using namespace std; #include <windows.h> #include <shlobj.h> int main() { char path[ MAX_PATH ]; if (SHGetFolderPathA( NULL, CSIDL_PROFILE, NULL, 0, path ) != S_OK) { cout << "I could not retrieve the user's home directory!\n"; } else { cout << "Home directory = \"" << path << "\"\n"; } if (SHGetFolderPathA( NULL, CSIDL_LOCAL_APPDATA, NULL, 0, path ) != S_OK) { cout << "I could not retrieve the user's application data directory!\n"; } else { cout << "Application data directory = \"" << path << "\"\n"; } return 0; }
------解决方案--------------------
先获取桌面路径!好像是下面那个,你在查查API吧!
TCHAR path[255];
SHGetSpecialFolderPath(0,path,CSIDL_DESKTOPDIRECTORY,0)
------解决方案--------------------
楼主别慌 山人自有妙计SHGetFolderPathA去MSDN查用法