• ベストアンサー

C言語で今まで表示していた画面の消すには?

こんにちわ, 今LinuxでC(C++でなく普通の)言語でプログラムを作っています。 それでいろいろprintfなどで表示していたものを消したいのですが,BASICでいうところのCLSのような画面を一度きれいにしてその後一番上の行からはじめるようなプログラム,関数などはないのでしょうか。 もしもありましたら教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

特にC言語では画面をクリアする関数は無いと思います。 Linuxで画面を消すにはclearですよね。 Linux環境のCを持っていないので何とも言えないのですが、stdlib.hにsystem関数はありますか? system関数があれば、DOS環境であれば、 system("cls"); で画面をクリア出来るので、linux環境で system("clear"); で出来るかもしれません。 またエスケープシーケンスを使って puts("\x1b[2J"); でクリア出来ると思います。 こちらの方がお勧めかもしれません。 ご確認下さい。

関連するQ&A

  • C言語プログラムの画面消去について

    C言語のプログラムで、  system("cls"); を使って画面消去ずることについて質問です。 この消去方法はパソコンが書いたプログラムを上から読み込むときに、system("cls");が書かれている位置まできたときに画面を自動的に消去するものだと聞きました。 例えば、 main() { system("cls"); printf("あいうえお\n"); } と書いたとすると、これをコンパイルしたとき、それまでに書いた「gcc ~~.c」や「./a.exe」などが全て消えて、いきなり画面に「あいうえお」の文字が表示されるのだと思います。 この操作をエンターキーなどで操作したい、つまり、 main() { printf("あいうえお\n");  system("cls"); printf("かきくけこ\n"); } という内容であったなら、まず「あいうえお」を表示させ、自分の好きなときにエンターキーを押して画面を消去し、「かきくけこ」だけを新たに表示させたいです。 このような操作は可能なのでしょうか? 基礎的なことで申し訳ありませんが、ご回答よろしくお願いいたします。

  • C言語のプログラムで...

    C言語のプログラムで2つのprintf関数の表示にタイムラグを付ける場合はどうしたら良いでしょうか?

  • c言語 プログラム メニュー

    C言語のプログラムでメニューの原型を作りたいと思っています。 内容としては ・標準ライブラリのみ ・関数を自作する ・関数の中身はprintfやscanfなど初歩的なもののみ ・メニューといっても1◯◯、2◯◯、3◯◯、4終了を表示(◯◯は適当)し、キーボードで1、2、3が入力されるともう一度メニューが表示されるというものです。(4のみプログラム終了) ご協力お願いします。

  • C言語で、数値の桁数を求めるには??

    C言語で数値の桁数を求めるプログラムをもとめたいのですが どうすればいいのでしょうか int c; int a; c=12345; a=printf("%d",c); とするとaに桁数は入るのですが cがPRINTF関数により表示されてしまいます どうすればいいでしょうか? わかる方はおしえてください、おねがいします。

  • C言語の仕組み

    C言語の仕組み printfという命令で画面に文字を表示できますが、文字が表示される画面はMS-DOSの画面や開発プログラムの実行ウィンドウの中ですよね。 もしC言語がPCに直接命令できるのであれば、画面全体が真っ暗になって、そこに文字が表示されるべきなのではないかと思いました(つまり、OS上で動くべきではない)。 しかし、仮に全く最初から文字を打つとしたら、ディスプレイの仕組みを理解して、ドットで文字を表示させなければなりません。 いったいprintfというのはどこに対して命令しているものなのでしょうか

  • DOS画面でテキストカーソルの位置を移動する(C言語)

     DOS用のC言語プログラムを作っています。そこで printf関数などで文字列を表示した後表示した文字列の 間に違う文字列を挿入したりしたいのですがそんなことは 可能でしょうか? #include <stdio.h> int main(void){ printf("13456789"); printf("2"); return 0; } というプログラムを作ったとして1と3の間に割り込んで2と 入れたい場合どうしたらよいでしょうか? 開発環境はwindowsXPでコンパイワはBorlandです。

  • C言語のアルゴリズムについて

    C言語で「標準入力から英語の文章を読み込んで,文字列Ilmorが出現した行をその行番号とともに表示するプログラムを作りなさい.」とプログラムを作りたいのですが、文字列を発見するところまでは分かるのですが、その行どうやって表示すればいいのか分かりません。また、文章を読み込むのもすごくややこしく最後にエンターを二回押すなどの制限があります。(scanf) 参考になるプログラムを書いていただける方いませんか?できればC言語のアルゴリズムについて詳しく書いた本やサイトがあれば教えていただきたいです。 レベルは超入門的な本を2,3冊読んだ程度です。アルゴリズムなどにはまったく触れてなかったし、ライブラリー関数も少ししか載ってなかったので関数の本もあれば教えていただきたいです。

  • C言語 関数の呼び出し関係について

    C言語を習い始めてから、1ヶ月も経っていないんですが、長いプログラム(1万行くらい)の読解という課題が出ました。 読解を円滑に進めていくためのコツとして、「関数の大まかな呼び出し関係」を調べればよい、と学びました。 そこで質問させてもらいたいのですが、「関数の呼び出し関係を調べる」とは、具体的にどういうことなんでしょうか?関数が関数を呼び出しているんですか?? もうひとつC言語について質問です。 今回与えられたプログラムは1万行くらいあるのですが、そのうちmain関数は50行くらいしかありません。 これって、残り9950行はすべて、main関数の動作のためにあるんですか?? 以上、初歩的な質問かもしれませんが、ご指導願います。

  • 2つのファイルを比較するC言語プログラムについて

    はじめまして、C言語プログラミングについて質問です。 2つのファイルの内容を比較するプログラムをC言語で作成する方法 について教えて頂けますでしょうか? 2つのファイルをそれぞれオープンした後、ファイルの先頭から1行ずつ読み込んで比較し、 違いがあればその行を画面表示するという動作をさせたいと考えて おります。

  • 1行の文字列を時間差で表示する方法

    こんにちはorこんばんは。 学校でC言語を習っています。 質問なんですが以下のプログラムで1行で表示する文字を時間差で表示させたいのですがどうしたらいいんでしょうか?理想としては 「犯人は・・・(数秒後)お前だ!」 ←これを改行せずに1行で。 と表現したいんですが、最初に int main(void) {  printf("犯人は・・・");  sleep(2); printf("お前だ!\n"); return 0; } と書いたのですが、思い通りにいかず、数秒たってから一度に表示しました。 C言語を使っている環境はLinux4.2でemacsで書いています。 どなたか方法をご存じの方がいれば教えてください。 お願いします。

専門家に質問してみよう