有没有办法使用C ++和C ++程序的位置在计算机上创建文件?我希望能够在多台计算机上使用此程序,但每台计算机都有自己的不同目录。例如,如果我想创建位于用户目录上的test.txt文件,有一种方法可以将文件的路径放在与程序文件的位置相对应的位置,因为" user"用户名不同。
答案 0 :(得分:-1)
只要您在Windows上,就可以使用API GetUserName,然后使用SetCurrentDirectory API更改工作目录,然后使用CreateFile或fstream在那里创建文件:
#include <iostream>
#include <windows.h>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ULONG len = 50;
LPSTR lpBuffer = (LPSTR)GlobalAlloc(GPTR, len);
GetUserName(lpBuffer, &len);
cout << lpBuffer << endl;
// don't forget to clean when you're done:
string str = "C:\\Users\\";
str += lpBuffer;
str += "\\test.txt";
cout << str << endl;
ofstream out(str.c_str());
if(out.fail())
perror("Opening failed");
out << "Hello " << lpBuffer;
out.close();
GlobalFree(lpBuffer);
GlobalFree(lpBuffer);
return 0;
}
此程序获取当前用户名并在其文件夹中创建文件并在其中写入“Hello”'yourusername'