2017-08-07 76 views
0

char* argv[]wstringに変換するにはどうすればよいですか?私は"/d"を使用してargvから文字列パスを取得し、それを私の関数ArrayOfDirContentsのパラメータとして挿入します。char * argv []をwstringに変換する

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 != '\0' || 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); 

} 
+0

これまでに何を試しましたか?実際にあなたが解決しようとしている問題は何ですか? (参照['std :: mbtowc'](http://en.cppreference.com/w/cpp/string/multibyte/mbtowc)) –

+0

私は、例えば" C:/ User "という引数としてフォルダへのパスを持っています"私はargvからwstringまたはconst wchar tにこの文字列を変換する必要があります –

+0

Martin Bonnerなぜmbtowc intですか? wstringまたはwchartとして値を保存する必要があります* –

答えて

3

C:/Userの部分には、Windowsを使用していると伝えられます。それは重要です。その情報を与えたはずです。

Windowsのユーザー名を制御することはできません。それらは、char** argvとして表現できない形式にすることができます。代替はint wmain(int argc, wchar_t** argv)です。これは簡単にstd::vector<std::wstring>に変換されます。

関連する問題