ページ 1 / 1
表示された文字の書き換えについて
Posted: 2012年1月19日(木) 11:57
by アマ・プログラマ
一旦文字を表示した後に、それを削除して、そこに新たな文字を表示させるにはどうすればいいでしょうか?
例:
printf("abcdefg\n");//これでまずはabcdefgを表示させる。
その後、表示されたabcdefgを消去して、元々abcdefgがあった場所に新たに
hijklmnを表示させるにはどうすればいいでしょうか
Re: 表示された文字の書き換えについて
Posted: 2012年1月19日(木) 12:00
by beatle
Cの標準ライブラリを使っている限りはできないと思います.どうしてもやりたいなら,OSに依存した書き方になると思いますから,開発対象のOSやコンパイラなどを教えて下さい.
Re: 表示された文字の書き換えについて
Posted: 2012年1月19日(木) 12:12
by softya(ソフト屋)
前の質問を放置しないようにお願いします。解決なら解決チェックを!
「HPを減少させるにはどうすればいいでしょうか • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=10017
Re: 表示された文字の書き換えについて
Posted: 2012年1月22日(日) 10:53
by 天津飯
コード:
#include <stdio.h>
#include <stdlib.h> /*system()*/
#include <conio.h> /*kbhit()*/
int main(){
char str1[8]="ABCDEFG";
char str2[8]="HIJKLMN";
printf("%s",str1);
while(!kbhit()); /*WaitKey()の代用*/
system("cls"); /*画面クリア*/
printf("%s\n",str2);
return 0;
}
自分はWindowsを使っています。
上のようにsystem("cls")で画面をクリアするというのはダメでしょうか?
それかちょっと調べてみたところ、SetConsoleCursorPosition()というものでgotoxy()に似たようなことができるらしいので、
下のようにしてみるといいと思います。(多分Windowsの人しかできないだろうけど・・・)
コード:
#include <stdio.h>
#include <windows.h> /*SetConsoleCursorPosition()*/
void gotoxy(int x,int y){
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition( GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main(){
char str1[8]="ABCDEFG";
char str2[8]="HIJKLMN";
printf("%s",str1);
Sleep(1000); //1000ミリ秒の待ち
gotoxy(0,0); //0,0座標にセット
printf("%s\n",str2);
Sleep(1000); //1000ミリ秒の待ち
gotoxy(0,0); //0,0座標にセット
printf("%s%s\n",str1,str2);
Sleep(1000); //1000ミリ秒の待ち
return 0;
}
※gotoxy(x,y) は,カーソルを画面上の (x,y) へ移動する関数です。