명령 줄 인수를 'up'또는 'down'또는 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[]
//
}
편집 :는 다음과 같이 작동하지만 그것을하고 적절한 방법이 아니다. 이 작동하지 않습니다
if (argv[1] == 'up')
:
#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'는 작은 따옴표로 작동하지 않습니다 –