Domanda

supose si dispone di un file eseguibile a riga di comando che riceve argomenti. Questo è executalbe widechar pronto e si desidera verificare se uno di questi argomenti inizia con un caso in cui il suo HYPHEN un'opzione:

comando -o pippo

come hai potuto testarlo all'interno del vostro codice, se non si conosce il charset stato utilizzato dal conduttore? Dovrebbe essere non è possibile una determinata console per produrre la stessa rappresentazione HYPHEN da un altro char nella foresta widechar? (In tal caso sarebbe un carattere selvaggio: P)

int _tmain(int argc, _TCHAR* argv[])
{
   std::wstring inputFile(argv[1]);
   if(inputFile->c_str() <is an HYPHEN>)
   {
      _tprintf(_T("First argument cannot be an option"));
   }
}
È stato utile?

Soluzione

Nel tuo caso, Windows consegnerà la linea di comando come stringa UTF-16, quindi non dovreste aver bisogno di preoccuparsi set di caratteri. Basta controllare (inputFile->c_str()[0] == L'-') e si dovrebbe essere pronti per partire. Naturalmente UTF-16 è una codifica a lunghezza variabile, ma il trattino è rappresentato da un valore singolo livello char.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top