while구문은 참일때만 수행되는 구문입니다.
while(input != 'x' || input != 'X') 대신 while(input != 'x' && input != 'X')를 넣어야 합니다. 만약 x를 넣었다면 논리합(||)일경우 앞의 조건은 거짓이지만 뒤에 input != 'X'가 참이되므로 결과적으로 참이되어 whlie내의 문장들은 수행이 됩니다.
아마 제 생각에는 이렇게도 해보고 저렇게도 해보시는 도중에 처음에 제대로 작성하셨다가 ||로도 바꿔보시기도 하고~ 하신것 같은데 문제는 다른곳에 있습니다^^;;
저는 아직 C++은 Syntax조차 모릅니다. 그래서 C++에서도 이렇게 하는지는 모르겠으나, c언어로는 이렇게 됩니다^^;;
#include <stdlib.h>하시고..
int main()
{
int input;
char buf[128];
cout << "Enter a number(If you want to exit a program, push 'x') : ";
cin >> buf;
printf("%d",input);
// x나 X를 누를때까지 루프 반복
while(buf[0]!= 'x' && buf[0] != 'X'){
input = atoi(buf);
// 함수의 컨테이너의 반환값을 받는다
const vector<int> *ppp = fib(input);
// 객체 출력
for(int i=0; i<input; ++i)
cout << (*ppp)[i] << ' ';
cout << "Enter a number(If you want to exit a program, push 'x') : ";
cin >> buf;
}
return 0;
}
atoi라는 함수를 사용하였습니다. 이것에 대해선 저보다 레퍼런스가 더 확실할듯 하군요^^;
혹시 C++에서나, 혹은 이보다 더 좋은 해결책이 분명 있을테니 알고계시는 분이나 알계되시면 답글부탁드립니다
|