一旦文字を表示した後に、それを削除して、そこに新たな文字を表示させるにはどうすればいいでしょうか?
例:
printf("abcdefg\n");//これでまずはabcdefgを表示させる。
その後、表示されたabcdefgを消去して、元々abcdefgがあった場所に新たに
hijklmnを表示させるにはどうすればいいでしょうか
表示された文字の書き換えについて
Re: 表示された文字の書き換えについて
Cの標準ライブラリを使っている限りはできないと思います.どうしてもやりたいなら,OSに依存した書き方になると思いますから,開発対象のOSやコンパイラなどを教えて下さい.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 表示された文字の書き換えについて
前の質問を放置しないようにお願いします。解決なら解決チェックを!
「HPを減少させるにはどうすればいいでしょうか • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=10017
「HPを減少させるにはどうすればいいでしょうか • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=10017
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
天津飯
Re: 表示された文字の書き換えについて
#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;
}
上のように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;
}