저는 C++의 초보자입니다. 당신은이 C++ 구문의 오류는 무엇입니까?
char c;
while((c = cin.get()) != 'q')
{ //do anything
}
있습니다
while((char c = cin.get()) != 'q')
{ //do anything
}
내가 컴파일하려고, 그것은 나를이 시도이
저는 C++의 초보자입니다. 당신은이 C++ 구문의 오류는 무엇입니까?
char c;
while((c = cin.get()) != 'q')
{ //do anything
}
있습니다
while((char c = cin.get()) != 'q')
{ //do anything
}
내가 컴파일하려고, 그것은 나를이 시도이
표현식의 일부로 선언을 사용할 수 없습니다. 당신 수
while ((char c = cin.get()) != 'q') { ...
// |----------------| <---------------------- this is a declaration
// |-------------------------| <-------------- this is an expression
은 (하지 중첩 된 괄호) 루프의 괄호 안에 직접 선언이 :
while (char c = cin.get()) { ...
을하지만이 원하지 무엇 인 !c
에 중지합니다.
while (int c = cin.get() - 'q') { // ugly code for illustrative purpose
c += 'q';
...
}
을 그래서이됩니다 :
이 작동합니다
for (char c; (c = cin.get()) != 'q';) { // ugly code for illustrative purpose
...
}
업데이트 : 또한 this SO question 참조하십시오.
이해를 도와주세요
error: expected primary-expression before "char".
을 다음과 같이 실패 : 다음 코드를 시도 변수를 괄호 안에 선언하므로 오류 :
while (char c = cin.get() != 'q')
예 나는 그것이 작동합니다. 하지만 왜 내 구조가 정확하지 않은지 알고 싶습니다. – bubble
'while (char c = cin.get()! ='q ')' – bubble
@bubble, 문장이 있고 표현식이 있습니다. 명령문은 표현식의 일부로 사용할 수 없습니다. 'char c = ...'는 명령문입니다. –