2017-11-03 26 views
-1

안녕하세요 여러분, 런타임에 Enter 키를 누르지 않고 한 번에 배열에 9 개의 정수를 추가하고 싶습니다. 얘들 아, C++에서 동시에 9 개의 정수를 배열에 추가하는 법을 말해줘. 감사합니다.C++에서 동시에 cin을 사용하여 배열에 정수 추가

+0

'표준을 :: 대신하고 소멸자에 대한 몇 가지 규칙으로 파싱합니다. – George

+0

https://stackoverflow.com/a/1321154/3754223 – MABVT

+3

[여러 숫자가 포함 된 문자열을 정수로 변환] 가능한 복제본 (https://stackoverflow.com/questions/1321137/convert-string-containing-several-numbers) - 정수) – MABVT

답변

1

콘솔에서 입력 한 직후에 각 정수 값을 처리하려는 경우 (예 : 공백으로 다음 정수 값이 시작됨을 나타냄) 잘못된 위치에 있습니다.

이유는 종종 버퍼링 (당신의 C에 영향을 미칠 수 ++ 프로그램이 무엇인지 이상) 해당 터미널 입력, 심지어 cinEnter 또는 EOF이 터미널에서 누를 때까지 모든 문자를받지 못할 수 있습니다.

conio.h 또는 ncurses과 같은 해결 방법이있을 수 있지만 콘솔 입력에 밀접하게 연결된 프로덕션 환경에 대해 정수 스캔을 구현해야하는 경우가 아니면 표준 작업은 아니며 아마도 사용자 작업에 적합하지 않을 수 있습니다.

것은 그것을 밖으로 시도하고 이미 충분한 입력을 "작성"하는 스트림에서 입력 콘솔에서 직접 촬영 한 입력 비교하십시오`표준 : string` cin`

int main() { 

    stringstream ss("12 34 56 78 90 10 11 12 13"); 
    //istream &in = ss; // would output each integer immediately. 

    istream &in = cin; // will probably wait for enter before processing begins. 

    int value = 0; 
    for (int i=0; i<9; i++) { 
     if (! (in >> value)) 
      break; 
     cout << value << "; "; 
    } 
}