2016-08-22 10 views
0

내가 성공적으로 내 화면의 뼈대를 만든 인쇄 문자열 - C

C.

내 콘솔 상단에 메뉴 표시 줄을 시도하고있어 (등 국경) 하지만 지금은 내 술집 안에 일부 텍스트를 인쇄하려고합니다.

내 텍스트가 올바른 자리에 표시 얻을 수 있지만 내 코드의 모든 부분에서 모두 의 printf와 sprintf와을 배치하려고 시도했습니다.

이 용도로 가장 적합한 명령은 무엇입니까?

내가 지금까지 시도 코드 :

void setup(void) { 
     printf("Hello World"); 
} 

int main(void) { 
setup_screen(); 
setup(); 
show_screen(); 
} 

뿐만 아니라 : 나는 또한 바로 '주'함수에 코드의 두 세그먼트를 넣어 시도

void setup(void) { 
     char * str[30]; 
     sprintf(str, "Hello World"); 
     puts(str); 
} 

int main(void) { 
setup_screen(); 
setup(); 
show_screen(); 
} 

.

+0

작동하지 않는 코드를 알려 주시기 바랍니다. –

+0

지금까지 조사/디버깅 작업을 표시하십시오. 먼저 [Ask] 페이지를 읽으십시오. –

+0

@SouravGhosh 내 코드에 대한 설명으로 내 질문을 업데이트했습니다. 나는 stackoverflow에 새로운 의견을 보내 주셔서 감사합니다. – Chynna

답변

2

콘솔의 특정 부분으로 인쇄하는 통일 된 방법이 없습니다. PC에있는 경우 특정 화면 좌표에 문자를 넣을 수있는 라이브러리가 있습니다 (, Windows에있는 경우). 리눅스에서 vt100이나 다른 터미널을 에뮬레이션하도록 용어가 설정되어 있다면 커서의 특정 위치로 커서를 이동하고 화면을 지우는 등의 일련의 문자를 보낼 수 있습니다. 이러한 시퀀스는 일반적으로 ESC 문자 (0x27)로 시작합니다. 구글 "vt100 이스케이프 코드"그리고 이러한 시퀀스의 목록을 찾을 수 있습니다. 당신이 원하는 모든이의 텍스트와 테두리를 인쇄 할 경우

는, 어쩌면 당신은 24 X 80 화면에 각 문자의 위치를 ​​나타내는

char screenimage[24][80]; 

같은 것을 갖고 싶어. 시작할 공백을 채우고 원하는대로 사진을 생성하십시오. 마지막으로, 화면이 정확하게 24x80 인 경우 이론적으로 일하는 것이 그

for (int row=0; row < 80; row++) 
    for (int col=0; col < 24; col++) 
     printf("%c", screenimage[row][col]); 

같은 것을 가지고있는 전체의 배열을 인쇄하고 인쇄가 다음 행으로 주위에 랩합니다. 그렇지 않으면 코드를 조정해야합니다.

+0

업데이트 된 질문에 표시된 'setup'기능에 코드를 삽입 해 보았습니다 ... 프로그램을 열 때 내 전체 코드가 작동을 멈추고 콘솔을 종료하는 원인이되었습니다. 모든 종류의 이상한 것을 인쇄 한 % c 앞에 'hello'를 포함 시켰습니다.나는 이제 화면 높이와 너비 값을 다음과 같이 입력하려고 시도했다.'char screenimage [screen_width()] [screen_height()]; (int 행 = 0; 행 <화면 _ 높이(); 행 ++) 에 대한 (int col = 0; col <화면 _ 폭(); col ++) printf ("% c", screenimage [row] [col]); '출력을 생성하지 않습니다. – Chynna

+0

내 코드의 나머지 부분과 관련이 있음을 나타낼 수있는 몇 가지 추가 정보 :'printf ("Hello World")'를 내 메인 함수 (또는 내 설정 함수)에 추가해도 출력이 콘솔에 반환되지 않습니다. C 언어로 코딩하는 것이 처음이므로 정상인지 아닌지 알 수 없습니다. – Chynna