将 char* argv[] 转换为 wstring
Convert char* argv[] to wstring
如何将 char* argv[]
转换为 wstring
?我使用 "/d"
从 argv
获取字符串路径并将其作为函数的参数插入 ArrayOfDirContents
.
int main(int argc, char *argv[])
{
double minimum = 10;
double input;
char* filename;
wstring adr(L".");
const wchar_t* adresar;
adresar = adr.c_str();
char *p;
int num;
errno = 0;
long conv;
for (unsigned i = 1; i < argc; i++) {
conv = strtol(argv[i], &p, 10);
// Check for errors: e.g., the string does not represent an integer
// or the integer is larger than int
if (errno != 0 || *p != '[=10=]' || conv > INT_MAX) {
// Put here the handling of the error, like exiting the program with
// an error message
cout << "";
}
else if(strcmp(argv[1], "/a") == 0) {
// No error
num = conv;
minimum = num;
}
else if(strcmp(argv[3], "/d") == 0) {
int mbtowc(wchar_t* adresar, const char* argv[4], std::size_t n);
}
else {
adresar = adr.c_str();
}
getchar();
}
string nazev_souboru;
vector<string> strpole;
int chyby, l;
chyby = 0;
bool vysledek;
vysledek = ArrayofDirContents(adresar, nazev_souboru, strpole);
vector<string>::iterator i;
if (vysledek == true) {
writeFile(nazev_souboru, strpole, chyby, l, minimum);
writeSms(strpole, chyby, l, minimum);
for (i = strpole.begin(); i < strpole.end(); i++) {
cout << *i;
cout << '\n';
}
}
//SaveDirectoryContents(L".", nazev_souboru);
}
C:/User
部分告诉我您正在使用 Windows。这很重要;你应该已经提供了那个信息。
您无法控制 Windows 用户名。它们可以采用无法表示为 char** argv
的格式。备选方案是 int wmain(int argc, wchar_t** argv)
。这很容易转换为 std::vector<std::wstring>
。
如何将 char* argv[]
转换为 wstring
?我使用 "/d"
从 argv
获取字符串路径并将其作为函数的参数插入 ArrayOfDirContents
.
int main(int argc, char *argv[])
{
double minimum = 10;
double input;
char* filename;
wstring adr(L".");
const wchar_t* adresar;
adresar = adr.c_str();
char *p;
int num;
errno = 0;
long conv;
for (unsigned i = 1; i < argc; i++) {
conv = strtol(argv[i], &p, 10);
// Check for errors: e.g., the string does not represent an integer
// or the integer is larger than int
if (errno != 0 || *p != '[=10=]' || conv > INT_MAX) {
// Put here the handling of the error, like exiting the program with
// an error message
cout << "";
}
else if(strcmp(argv[1], "/a") == 0) {
// No error
num = conv;
minimum = num;
}
else if(strcmp(argv[3], "/d") == 0) {
int mbtowc(wchar_t* adresar, const char* argv[4], std::size_t n);
}
else {
adresar = adr.c_str();
}
getchar();
}
string nazev_souboru;
vector<string> strpole;
int chyby, l;
chyby = 0;
bool vysledek;
vysledek = ArrayofDirContents(adresar, nazev_souboru, strpole);
vector<string>::iterator i;
if (vysledek == true) {
writeFile(nazev_souboru, strpole, chyby, l, minimum);
writeSms(strpole, chyby, l, minimum);
for (i = strpole.begin(); i < strpole.end(); i++) {
cout << *i;
cout << '\n';
}
}
//SaveDirectoryContents(L".", nazev_souboru);
}
C:/User
部分告诉我您正在使用 Windows。这很重要;你应该已经提供了那个信息。
您无法控制 Windows 用户名。它们可以采用无法表示为 char** argv
的格式。备选方案是 int wmain(int argc, wchar_t** argv)
。这很容易转换为 std::vector<std::wstring>
。