Как получить аргумент командной строки «вверх» или «вниз» или значения от 0 до 0.50, 1? (где я должен использовать _TCHAR * argv [])? невозможно заставить его работать, есть ли гений.Невозможно напечатать литой?
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: работает только ниже, но это не правильный способ сделать это.
#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] == 'up'' и' ARGV [1] ==' down'' не может делать то, что вы думаете –
Ваше сравнение строк не будет работать. Использовать strcmp. –
@YvesDaoust 'strcmp' не будет работать с одинарными кавычками вроде –