Comment obtenir l'argument 'up' ou 'down' de la ligne de commande ou des valeurs entre 0 et 0.50, 1? (où dois-je utiliser _TCHAR * argv [])? il est impossible de le faire fonctionner, y a-t-il du génie.Impossible de taper cast?
int _tmain(int argc, _TCHAR* argv[]) {
double SDK;
// command line input:
// user.exe up
// user.exe down
// user.exe 0.50
if (argv[1] == 'up') {
SDK= _tstof(0.85); // FAIL _T or (TCHAR*) or ...
}
else if(argv[1]== 'down') {
SDK= _tstof(0.50); // FAIL _T or (TCHAR*) or ...
}
else {
SDK= _tstof(argv[1]); // This works
}
//
// 3rd party SDK needs _TCHAR* argv[]
//
}
EDIT: ne fonctionne que comme ci-dessous, mais ce n'est pas la bonne façon de le faire.
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[]) {
double SDK;
if (argv[1][0] == 'u') {
printf("up: \n");
SDK = 0.85;
}
else if (argv[1][0] == 'd') {
printf("down: \n");
SDK = 0.50;
}
else {
printf("else: \n");
SDK = _tstof(argv[1]);
}
}
'argv [1] == 'et' up'' argv [1] ==' down'' pourrait ne pas faire ce que vous pensez –
Votre comparaison de chaînes ne fonctionnera pas. Utilisez strcmp. –
@YvesDaoust 'strcmp' ne fonctionnera pas avec des guillemets simples comme ça –