質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

curses

cursesは、 UNIX 系列で使用される端末制御ライブラリです。CUI アプリケーションを作成するために使用されます。表示端末は多くの制御コードをサポートしており、カーソル移動や画面のスクロール、領域消去といった一般的な操作の実行が可能です。

受付中

コンソールアプリ エラーログとして適切な取り方が知りたい

samidare_chan
samidare_chan

総合スコア278

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

curses

cursesは、 UNIX 系列で使用される端末制御ライブラリです。CUI アプリケーションを作成するために使用されます。表示端末は多くの制御コードをサポートしており、カーソル移動や画面のスクロール、領域消去といった一般的な操作の実行が可能です。

0回答

-3評価

0クリップ

265閲覧

投稿2022/08/08 09:43

提示コードですがライブラリ側のif文の中なのですがエラーログとして適切な実装方法が知りたいです。例えばどんなやり方がいいのでしょうか?

考えた事

std::cout<<"Error " <<std::endl;とういう方法を考えましたが場所がわからないのでちょっと違うと思うのですが

実装していること

テキストファイルにログ書き込む

Main.cpp

cpp

#include "../lib_src/Console.hpp" #include "../lib_src/Help.hpp" #include <ncurses.h> #include <iostream> int main() { Console::Init(); Console::NoDispInput(); Console::NoInputBuffer(); WINDOW *win = newwin(30,30,10,10); refresh(); while(true) { Console::ClearBuffer(NULL); Console::Draw(Console::ColorCode::Black,Console::ColorCode::White,NULL,"Hello World"); Console::DrawBuffer(NULL); if(getch() == 27) { break; } } Console::Close(); return 0; }
実装側

cpp

/*##################################################### # 文字描画 座標指定 #######################################################*/ void Console::Draw(ColorCode fg,ColorCode bg,WINDOW *win,glm::ivec2 pos,const char* fmt,...) { va_list ap; char str[10000] = {'\0'}; va_start(ap, fmt); vsprintf(str,fmt,ap); va_end(ap); Render::Draw(fg,bg,win,pos,str); }
ライブラリ側

cpp

void Console::Render::Draw(ColorCode fg,ColorCode bg,WINDOW *win,glm::ivec2 pos,const char* fmt) { SetColor(glm::ivec2((int)fg,(int)bg)); if(win != nullptr) { if(mvwprintw(win,pos.y,pos.x,"%s",fmt) == ERR) { } } else { if(mvwprintw(stdscr,pos.y,pos.x,"%s",fmt) == ERR) { } } UnSetColor(glm::ivec2((int)fg,(int)bg)); }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

curses

cursesは、 UNIX 系列で使用される端末制御ライブラリです。CUI アプリケーションを作成するために使用されます。表示端末は多くの制御コードをサポートしており、カーソル移動や画面のスクロール、領域消去といった一般的な操作の実行が可能です。