コンソールアプリケーションの表示方法の質問

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

コンソールアプリケーションの表示方法の質問

#1

投稿記事 by YuuUeno » 2年前

はじめまして。独学でC言語を勉強しております。
Scanfで配列に数字を格納して表示するだけのコンソールアプリケーションをC言語で作成しました。

以下、作成結果。

//ここから
Input>>123
[123]
Input>>456
[123][456]
Input>>789
[123][456][789]
Input>>xxx
[123][456][789][xxx]
//ここまで
このように出力するように作りました。
ここからさらに改良して、

//ここからやりたいこと
Input>>xxx ←ここに数字を入力したら
[123][456][789[xxx]←下に追加されていく
//ここまで

上記のように1行めに入力カーソルをもってきて
2行目には出力が追加表示されるように作り変えたいです。

試行錯誤しましたが、良いロジックが思いうかびません。
そもそも入力待ちの下に配列の中身を表示させることができるのかも調査しましたがいまのところ
有用な情報を見つけることができません。C言語にお詳しい方いらっしゃいましたら、
お知恵をお借りしたくお願い申し上げます。

アバター
あたっしゅ
記事: 665
登録日時: 14年前
住所: 東京23区
連絡を取る:

Re: コンソールアプリケーションの表示方法の質問

#2

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
エスケープ・シーケンスの使えるコンソールなら、エスケープ・シーケンスを使えばできるみみ。
エスケープは ESC と表記されていることがあるみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

box
記事: 2002
登録日時: 14年前

Re: コンソールアプリケーションの表示方法の質問

#3

投稿記事 by box » 2年前

入力回数の上限は決まっているんですか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

YuuUeno

レスいただきありがとうございました。解決できました。

#4

投稿記事 by YuuUeno » 2年前

あたっしゅ様。ご教授いただきありがとうございました。
イメージ通りの処理ができ問題が解決いたしました。

本来最初に書くべき内容とソースコードを貼り付けておりませんでした。
大変失礼いたしました。
下記に記述させていただきます。

[1]
 [1.1] 自分が今行いたい事
  ・コンソールアプリでの入出力の練習用プログラム
 [1.2] どのように取り組んだか
  ・入門サイトなどでの独学
 [1.3] どのようなエラーやトラブルで困っているか
  ・コンソール上でのカーソル位置を自分で指定する方法がわからない

[2] 環境  
 [2.1] OS : Windows 11 Pro ver.21H2
 [2.2] 開発環境:VisualStudio2022

[3] その他
 ・どの程度C言語を理解しているか
  →C言語=基礎がなんとなくわかるレベル
 ・ライブラリを使っている場合は何を使っているか
  →C言語標準ライブラリ
 

コード:

#include<stdio.h>
#include<string.h>

#pragma warning (disable:4996)

int main() {
	int i = 0;
	char str[16][64];
	
	memset(str, '\0', sizeof(str));
	
	printf("Input Please >>");
	
	while (true) {
		scanf("%s", str[i]);
		printf("[%s]", str[i]);
		printf("\033[%d;%dH", 1, 16);//printf("\033[%d;%dH" ,10,20) //カーソル位置を、高さ1行目、横16行目に移動
		printf("\033[0K");//カーソル位置からその行の右端までをクリア
	}
	return 0;
}

YuuUeno

box様。レスいただきありがとうございました。解決できました。

#5

投稿記事 by YuuUeno » 2年前

box さんが書きました:
2年前
入力回数の上限は決まっているんですか?
書き込みいただきありがとうございます。
入力回数の上限は今回は決まっておりませんでした。
今回は自分のイメージ通り解決できました。
ありがとうございました。

本来最初に書くべき内容とソースコードを貼り付けておりませんでした。
大変失礼いたしました。
下記に記述させていただきます。

[1]
 [1.1] 自分が今行いたい事
  ・コンソールアプリでの入出力の練習用プログラム
 [1.2] どのように取り組んだか
  ・入門サイトなどでの独学
 [1.3] どのようなエラーやトラブルで困っているか
  ・コンソール上でのカーソル位置を自分で指定する方法がわからない

[2] 環境  
 [2.1] OS : Windows 11 Pro ver.21H2
 [2.2] 開発環境:VisualStudio2022

[3] その他
 ・どの程度C言語を理解しているか
  →C言語=基礎がなんとなくわかるレベル
 ・ライブラリを使っている場合は何を使っているか
  →C言語標準ライブラリ
 
コード:

#include<stdio.h>
#include<string.h>

#pragma warning (disable:4996)

int main() {
int i = 0;
char str[16][64];

memset(str, '\0', sizeof(str));

printf("Input Please >>");

while (true) {
scanf("%s", str);
printf("[%s]", str);
printf("\033[%d;%dH", 1, 16);//printf("\033[%d;%dH" ,10,20) //カーソル位置を、高さ1行目、横16行目に移動
printf("\033[0K");//カーソル位置からその行の右端までをクリア
}
return 0;
}

返信

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