• 締切済み

コマンドライン上で確定した文字を表示させない方法(Linux)

aid-uの回答

  • aid-u
  • ベストアンサー率75% (22/29)
回答No.2

Linuxでターミナルの制御を行うには、ncursesというライブラリを使用します。 ターミナル上で利用できるエディタなどで使用されるライブラリです。 #1で言われているエスケープシーケンスを扱います。 ncursesを使用する場合は、printf/fgetsのように単独で使用できません。 初期化処理などの一定の手順を取る必要があります。 詳しいことは、ncursesについて記述しているサイトを探してください。 おおよそ以下のようになるのではないかと思います。 マシン上での確認は行っていないので、誤りがあると思います。 a)initscr()で初期化 b)getsyx()で現在のカーソル位置を取得 c)getstr()で文字列を読み込み d)setsyx()でb)で取得したカーソル位置へ移動 e)clrtoeol()でカーソル位置から行末をクリア f)printw()で表示 g)endwin()で終了処理

関連するQ&A

  • echo表示した文字をLinuxOSのシェルのコマンドライン上に表示したい

    LinuxOSのシェル上でecho表示した文字をコマンドライン上にそのまま表示できないでしょうか。 どなたかご存知の方いらっしゃいましたらご教授宜しくお願いします。

    • ベストアンサー
    • Perl
  • コマンドラインに出力した文字を消すには

    printf 関数などで出力した文字を行単位などで消したい場合,どのような操作をすればよいでしょうか. visual studio 2005を使っているのですがprintfでエスケープシーケンスを使っても,うまく文字を消すことができなかったです. 分かる方いたら教えてください.

  • コマンドラインから、フォルダ名を取る方法を探しています。

    コマンドラインから、フォルダ名を取る方法を探しています。 いつもお世話になっています。 1行目のとおりですが、普通、コマンドラインで ECHO %CD% と入力すると、フルパスが表示されますが、それを、例えば、 C:\aaa\bbb\ccc が表示される場合、「ccc」のみ(最下層のフォルダ名称)だけを取り出すことは不可能でしょうか? プログラミングはあまり得意でないのでバッチで取り出したいのですが、無理ならプログラミングもいといません。 お詳しい方、よろしくお願いいたします。

  • shellのコマンドラインからechoコマンドで表示した文字列について

    お世話になります。 題名にもあります通り、shellのコマンドラインからechoコマンドで表示した文字列をそのままメモリー上にコピーできると作業が1ステップ楽になる のになぁ・・・と思うのですが、どなたか方法をご存知の方いらっしゃらないでしょうか 実際には、 $ echo "AAAA" を実行した場合、マウスカーソルでシェル上のその文字列をドラッグして メモリにコピーした状態を作れると便利に思うのです。 どなたかご教授頂けましたら幸いです。

  • コマンドラインに入力されている文字列の1文字を出力

    ○下記のコードについての質問になります #include <stdio.h> int main( int argc, /*コマンドライン引数*/ char *argv[] /*コマンドライン */ ) { int counter; /*ループカウンタ*/ for( counter = 0 ; counter < argc ; counter++) { printf( "argv[%d]:%s\n" , counter , argv[counter] ); } /*----------------------------------------------------------- printf( "コマンドラインの1文字を抜き取る:%c" , ????????); ------------------------------------------------------------*/ return (0); } ○質問 コマンドラインのプログラムになります。 「--」で囲っている部分になりますが、 コマンドラインに入力されている文字列の1文字だけを出力できるように したいのですが、どうすればこれを実現することができるのでしょうか?? 一例として >command.exe orange ringe ^^^^^^ と、コマンドを打ったときに、「^^」の部分になりますが、 orangeの「a」だけを出力させたい場合を、知りたいと思っております。 以上、宜しくお願いします。

  • LinuxのコマンドラインでPDFの編集について

    既にあるPDFで、1ページのみまたは複数ページで、用紙サイズは不確定です。 Linuxのコマンドラインから指定場所に指定した文字を入力するための良い方法はありませんでしょうか? 既にあるPDFと、入力したい文字の記載のあるPDFを背景処理の様に重ねてしまう 事は出来たのですが、もっとシンプルに出来ないかと模索しています。 宜しくお願いいたします。

  • コマンドライン引数について。

    コマンドライン引数についての質問です。 コマンドライン引数に適当な数字をいれ、金種別にわけるプログラムですが、 コマンドライン引数に負の値や、文字列を入力したときにはエラーが表示させるようにしているのですが、 数字と文字を混合したもののときはエラーが表示されずにそのまま処理されてしまいます。 初めの一文字目が数字だったらそのあとに文字を入れても実行されてしまうようです。 全て数字の場合のみ実行させてそれ以外はエラーメッセージを表示させたいのですが、どのようにすればいいでしょうか? #include <stdio.h> #include <stdlib.h> int syubetu(int money,int *kinsyu); int *kinsyu; int main(int argc,char *argv[]) { int *p,a; p=(int*)malloc(sizeof(int)*9); if(p==NULL){ printf("メモリ確保失敗\n"); exit(1); } a=atoi(argv[1]); if(a>0){ syubetu(a,&p[0]); printf("1万円 %d枚\n",p[0]); printf("5千円 %d枚\n",p[1]); printf(" 千円 %d枚\n",p[2]); printf("5百円 %d枚\n",p[3]); printf(" 百円 %d枚\n",p[4]); printf("50円 %d枚\n",p[5]); printf("10円 %d枚\n",p[6]); printf(" 5円 %d枚\n",p[7]); printf(" 1円 %d枚\n",p[8]); } else{ printf("入力エラー\n"); exit(1); } } int syubetu(int money,int *kinsyu) 800字以上になるため、処理は省略します。

  • コマンドラインアプリケーション

    Cで、Windowを出さずに、コマンドラインで、 入力をやり取りしながらの、アプリケーション を作りたいと思っています(練習で、WINAPIを 使いたいだけなので)。 以下のようなコードで、メッセージボックスが 表示されなくなってしまいます(止まってしまう)。 int WINAPI WinMain(HINSTANCE hi,HINSTANCE phi,LPSTR lpstr,int cmd){  int num;  printf( "何か数字を入力して下さ\n" );  scanf( "%d", &num );  printf( "入力されたのは%d\n",num);  MessageBox(NULL,"OK?","start",MB_OK);  return 0; } ここで、scanfなどの関数を使わなければ、 メッセージボックスが表示されます。 標準入力で入力してもらい、必要なら、 メッセージボックスをだして、といった 感じで作りたいのですが。 よろしくお願いします。 ちなみに、使っているのは、lccとかいう コンパイラです。

  • 変数内のコマンドの実行コマンド文字列の表示

    変数内のコマンドの実行コマンド文字列の表示 DIG=`dig ドメイン` として変数内のコマンド実行結果を printf "$DIG\n"と表示させることはできるのですが、 実際に実行したコマンドを表示させることはできますでしょうか。 逆に DIG="dig ドメイン" として文字列をセットすればコマンド内容は表示されますが、 今度はコマンドとして実行させる方法がわかりません。 `$DIG`としてもprintf "$DIG\n"などいろいろ試しましたが わかりません。。 どなたかおわかりでしょうか

  • コマンドライン(batファイル等で)多くの文字数を入力するにはどうした

    コマンドライン(batファイル等で)多くの文字数を入力するにはどうしたらいいのでしょうか? そんなに難しい話では無く echo %1 とした場合全角10位+拡張子までしか認識しないようなのですが ソレ以上を認識させるってどういう工程踏めばいいのでしょうか?