2011-09-27 8 views
-1

는 여기에 내가 쓰기를 시도하고 몇 가지 코드의 일부입니다. "선택의 여지"가장 최근에 입력 옵션 매 시간 업데이트 할편집 가능한 콘솔 출력

Menu 

A. Option A 
B. Option B 
C. Option C 
Q. Quit 

Choice: A 
Option A! 

나는 선이 원하는. 이전에 선택한 옵션 (옵션 A!)의 출력을 새로 선택한 옵션의 출력으로 바꾸기를 원합니다.

'\ r'을 사용 해본 적이 있습니다. 그것이 나에게 캐리지 리턴을 제공하기 때문에 그것은 작동하지 않는다. 즉, 그것은 라인의 처음으로 다시 움직인다. 나는 그것이 한 문자 씩 뒤로 이동하기를 원하고, 줄의 시작으로 되돌려 놓기를 원하지 않는다.

+0

conio에는 커서를 이동시키는 기능이 있어야합니다. 시도해보십시오. gotoxy (int x, int y) – Pubby

+0

http://stackoverflow.com/questions/45286/how-can-i-overwrite-the-same-port-of-the-console-in-a-windows-native -c-conso – JRL

+0

태그에 'conio'를 추가했습니다. 이미이 라이브러리를 사용하고 있다는 것을 놓쳤습니다. 태그가 지정되면 전문가가 도움이 될 수 있습니다. (현재 삭제 된 ncurses 응답을 피할 수 있습니다.) – Tom

답변

1

이이 :

#include <iostream.h> 
#include <conio.h> 
int main() 
{ 
    char choice; 
    cout<<"Menu"<<endl<<endl; 
    cout<<"A. Option A"<<endl; 
    cout<<"B. Option B"<<endl; 
    cout<<"C. Option C"<<endl; 
    cout<<"Q. Quit"<<endl; 
    do 
    { 
     choice=getch(); 
     cout << "\r" << "Choice:\t"; // Moved into the loop 
     switch(choice) 
     { 
      case 'A': 
      { 
       cout << "Option A!"; // No more endl 
       break; 
      } 
      case 'B': 
      { 
       cout << "Option B!"; 
       break; 
      } 
      case 'C': 
      { 
       cout << "Option C!"; 
       break; 
      } 
      case 'Q': 
      { 
       return 0; 
      } 
      default: 
      { 
       cout << "Invalid Choice! Please try again."; 
       break; 
      } 
     } 
    }while(1); 
    cout << endl; // New sole endl 
} 

이 당신이 원하는 것을 정확히 아니지만, 최소한의 재 작업으로 얻을 수있는 가장 가까운 하나입니다.