std::string path = "d:\a\b\" ;这是路径
wstring filename=L"h1";这是文件的名字
最终我想要的是d:\a\b\h1.txt 这个完整的路径
std::string WStringToString(const std::wstring &wstr)
{
std::string str;
int nLen = (int)wstr.length();
str.resize(nLen, ' ');
int nResult = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)wstr.c_str(), nLen, (LPSTR)str.c_str(), nLen, NULL, NULL);
if (nResult == 0)
{
return "";
}
return str;
}
...............................................................
std::string path = "d:\\a\\b\\" ;
wstring filename=L"h1";
path=path+WStringToString(filename)+".txt";
#include <bits/stdc++.h>
#include <iostream>
#include <stdio.h>
using namespace std;
char name[1000000], path[1000020] = {'d', ':', '\\', 'a', '\\', 'b', '\\'};
void finishname() {
memset(name, '\0', sizeof(name));
gets(name);//获取用户输入
int n = strlen(name); /*char求长度*/
for (int i = 0; i < n; ++i) {
path[i + 7] = name[i];
}
int n2 = strlen(path); /*char求长度*/
path[n2] = '.';
path[n2 + 1] = 't';
path[n2 + 2] = 'x';
path[n2 + 3] = 't';
n2 = strlen(path); /*char求长度*/
// printf("%d\n", n2);//调试
for (int i = 0; i < n2; ++i) {
cout << path[i];//输出,如果不需要可以去除,如果要打开文件可以参考下面
}
/*
system(path);//打开文件
*/
return;
}
int main() {
finishname();
return 0;
}
小编为初中生,热爱编程,如果对你有帮助,请采纳