表示された文字の書き換えについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アマ・プログラマ

表示された文字の書き換えについて

#1

投稿記事 by アマ・プログラマ » 14年前

一旦文字を表示した後に、それを削除して、そこに新たな文字を表示させるにはどうすればいいでしょうか?
例:
printf("abcdefg\n");//これでまずはabcdefgを表示させる。
その後、表示されたabcdefgを消去して、元々abcdefgがあった場所に新たに
hijklmnを表示させるにはどうすればいいでしょうか

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: 表示された文字の書き換えについて

#2

投稿記事 by beatle » 14年前

Cの標準ライブラリを使っている限りはできないと思います.どうしてもやりたいなら,OSに依存した書き方になると思いますから,開発対象のOSやコンパイラなどを教えて下さい.

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 表示された文字の書き換えについて

#3

投稿記事 by softya(ソフト屋) » 14年前

前の質問を放置しないようにお願いします。解決なら解決チェックを!
「HPを減少させるにはどうすればいいでしょうか • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=10017
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

天津飯

Re: 表示された文字の書き換えについて

#4

投稿記事 by 天津飯 » 14年前

コード:

#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) へ移動する関数です。

閉鎖

“C言語何でも質問掲示板” へ戻る