안녕하세요 여러분, 런타임에 Enter 키를 누르지 않고 한 번에 배열에 9 개의 정수를 추가하고 싶습니다. 얘들 아, C++에서 동시에 9 개의 정수를 배열에 추가하는 법을 말해줘. 감사합니다.C++에서 동시에 cin을 사용하여 배열에 정수 추가
-1
A
답변
1
콘솔에서 입력 한 직후에 각 정수 값을 처리하려는 경우 (예 : 공백으로 다음 정수 값이 시작됨을 나타냄) 잘못된 위치에 있습니다.
이유는 종종 버퍼링 (당신의 C에 영향을 미칠 수 ++ 프로그램이 무엇인지 이상) 해당 터미널 입력, 심지어 cin
는 Enter
또는 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 << "; ";
}
}
'표준을 :: 대신하고 소멸자에 대한 몇 가지 규칙으로 파싱합니다. – George
https://stackoverflow.com/a/1321154/3754223 – MABVT
[여러 숫자가 포함 된 문자열을 정수로 변환] 가능한 복제본 (https://stackoverflow.com/questions/1321137/convert-string-containing-several-numbers) - 정수) – MABVT