2012-11-29 2 views
-4

스크립트에서 cin과 argv를 어떻게 결합합니까?Cin과 Argv 사용

int main(int argc, char* argv[]) 
c == argv[1]; 
cin >> c; 

명령 줄 인수가있는 경우 어떻게 cin을 무시합니까? 아니면 명령 줄 인수가없는 경우 cin을합니까?

+1

'argc' 당신에게 인수의 수를 제공합니다. 'argv [1]'에 대해 충분히 높으면, 그냥 설정할 수 있고 그렇지 않다면 입력 할 수 있습니다. – chris

+1

나는 어리 석다. .. 미안. – Foxic

답변

1

개체 std::cin 및 클래스 std::ifstream 모두 공유 공통 기본 클래스의 객체 : std::istream. 당신은 공통 기능에 cin 또는 ifstream 중 하나를 통과하기 위해이 사실을 사용할 수 있습니다

void DoOne(std::istream& in) { 
    int x; 
    in >> x; // etc etc 
} 

int main (int ac, char **av) { 
    if(ac == 1) 
    DoOne(std::cin); 
    else { 
    for(i = 1; i < ac; ++i) { 
     std::ifstream inFile(av[i]); 
     DoOne(inFile); 
    } 
} 
+0

Hmm. 내가 그 질문을 이해하지 못했을 수도 있습니다. –

+1

질문이 맞는 것으로 가정합니다. – melpomene

1
string s; 

if(argc == 2) 
    s = argv[1]; 
else 
    cin >> s; 

... do stuff here ...