c언어를 올바르게 이해하고 잘못된부분을 고치고 싶습니다 ㅠㅠ
봄
질문 제목 : c언어를 올바르게 이해하고 잘못된부분을 고치고 싶습니다 ㅠㅠ질문 요약 :방향키와 다른 문자 혹은 숫자 키를 구분하여 문자 혹은 숫자키를 입력하였을땐 화면에 문자 혹은 숫자키가 나오게 하고, 방향키를 입력하였을땐 해당 숫자 혹은 문자 키가 이동하는 프로그램을 작성하고 싶은대 뜻대로 되지 않내요질문 내용 :
#include stdio.h
#include windows.h
#include conio.h
#define x_max 50
#define y_max 10
void gotoxy(int x, int y);
void move_arrow_key(char chr, int *x1, int *y1, int x_b, int y_b);
int main(void)
{
char ch1=3;
char key;
int x=10, y=5;
do
{
gotoxy(x,y);
printf(%c,ch1);
system(cls);
key=getch();
if( key == 80 || key == 75 || key == 77 || key == 72 ) move_arrow_key(key, &x, &y, x_max,y_max);
else
{
ch1=key;
}
move_arrow_key(key, &x, &y, x_max,y_max);
}
while(key!=27);
return 0;
}
void move_arrow_key(char key, int *x1, int *y1, int x_b, int y_b)
{
switch(key)
{
case 80:
*y1=*y1+1;
if(*y1y_b) *y1=y_b;
break;
case 75:
*x1=*x1-1;
if(*x11) *x1=1;
break;
case 77:
*x1=*x1+1;
if(*x1x_b) *x1=x_b;
break;
case 72:
*y1=*y1-1;
if(*y11) *y1=1;
break;
default:
return;
}
}
void gotoxy(int x, int y)
{
coord pos = {x-1,y-1};
setconsolecursorposition(getstdhandle(std_output_handle),pos);
}
오랫동안 고심한 결과 위에 굵은 부분이 문제인것 같습니다.
사실 고수님들은 다른 방법도 많겠지만, 굳이 제가 이 방법으로 하고싶은 이유는 제가 직접 한 방법으로 틀린게 무엇인지 알아야 다음에 프로그램을 짤 때에도 도움이 될 것 같아서 질문을 올립니다 ㅠㅠ
위에 제가 짠것처럼 프로그램을 돌릴 시 문자를 입력해도 반응을 하지 않습니다.
system(cls); 를 지우고 하면 이상한 한자어가 출력되구요.
제 짧은 소견으론, ch1의 값을 else문에서 받아 저장한 후에 dowhile문이 반복할때 다시 초기화가 되는것 같기도 하고.. 잘 모르겠내요.. ㅠㅠ 전 위에 제가 짠 프로그램이 왜 안되는지 알고 싶습니다.
c언어 기초의 기초조차 안되있습니다.. 열정적인 초보자 구원하는샘치고 한번 봐주시길 바랍니다 ..
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2685477 | 소수점이하 출력하는거요 | 널위해 | 2025-02-18 |
2685449 | printf배우고있는데요 궁금한게있어요 (8) | 꽃큰 | 2025-02-18 |
2685393 | c언어 질문이요.... | 붕붕 | 2025-02-18 |
2685365 | 윈도우7에서 visual studio c++6.0 (1) | 빛길 | 2025-02-17 |
2685317 | segmentation fault가 나요 | 가람 | 2025-02-17 |
2685292 | 다중스택질문 | 올해1살 | 2025-02-17 |
2685231 | C언어와 닷넷에 대해서 질문!! (2) | 설아 | 2025-02-16 |
2685206 | VisualBasic 과 DEV++ 의 장단점과 만든 파일 호환 가능하나요? | 에드워드 | 2025-02-16 |
2685154 | 배열 크기조절 | 해찬솔 | 2025-02-15 |
2685124 | 수정이거 제가 뭐가 잘못한거죠 ? | 아이돌 | 2025-02-15 |
2685096 | 포인터의 고수분들 모두 보세요!! 제발 ㅠ_ㅠ 헷갈려헷갈려..갈려헷.. (7) | 치킨마루 | 2025-02-15 |
2685045 | 전처리기 질문 | 치에미 | 2025-02-14 |
2685016 | 오류 좀 확인해 주시면 감사하겠습니다 | 초코맛사탕 | 2025-02-14 |
2684917 | 알고리즘을 이용한 행렬의 전치// 문제다운 문제네요. | 뿡뿡 | 2025-02-13 |
2684868 | 양방향 연결리스트에서 실행도중 죽는 이유좀 찾아주세요. (2) | 예다움 | 2025-02-13 |
2684844 | 시계프로그램인데 도저히 모르겠어요ㅠ (1) | 비내리던날 | 2025-02-12 |
2684812 | 레포트좀도와주세요ㅠㅠ (2) | 갈매빛 | 2025-02-12 |
2684780 | 채팅창 흉내내보려고하는데요 ㅜ.ㅜ (1) | 바름 | 2025-02-12 |
2684729 | 내일 시험인데 메모리 그리는것좀 도와주세요 ㅠ (1) | 상처주지마 | 2025-02-11 |
2684701 | 버퍼 관련 질문 3가지 (이전거랑 달라요) | 한국녀 | 2025-02-11 |