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

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

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

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

C++

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

curses

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

Q&A

0回答

546閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Linux

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

C++

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

curses

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

0グッド

0クリップ

投稿2022/08/08 09:43

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

考えた事

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

実装していること

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

Main.cpp

cpp

1#include "../lib_src/Console.hpp" 2#include "../lib_src/Help.hpp" 3#include <ncurses.h> 4#include <iostream> 5 6int main() 7{ 8 9 Console::Init(); 10 11 Console::NoDispInput(); 12 Console::NoInputBuffer(); 13 14 WINDOW *win = newwin(30,30,10,10); 15 16 refresh(); 17 while(true) 18 { 19 Console::ClearBuffer(NULL); 20 21 22 23 Console::Draw(Console::ColorCode::Black,Console::ColorCode::White,NULL,"Hello World"); 24 25 26 27 28 29 Console::DrawBuffer(NULL); 30 if(getch() == 27) 31 { 32 break; 33 } 34 35 } 36 37 Console::Close(); 38 39 40 return 0; 41} 42
実装側

cpp

1 2/*##################################################### 3# 文字描画 座標指定 4#######################################################*/ 5 6void Console::Draw(ColorCode fg,ColorCode bg,WINDOW *win,glm::ivec2 pos,const char* fmt,...) 7{ 8 va_list ap; 9 char str[10000] = {'\0'}; 10 va_start(ap, fmt); 11 vsprintf(str,fmt,ap); 12 va_end(ap); 13 14 Render::Draw(fg,bg,win,pos,str); 15}
ライブラリ側

cpp

1 2void Console::Render::Draw(ColorCode fg,ColorCode bg,WINDOW *win,glm::ivec2 pos,const char* fmt) 3{ 4 5 SetColor(glm::ivec2((int)fg,(int)bg)); 6 7 if(win != nullptr) 8 { 9 if(mvwprintw(win,pos.y,pos.x,"%s",fmt) == ERR) 10 { 11 12 } 13 14 } 15 else 16 { 17 if(mvwprintw(stdscr,pos.y,pos.x,"%s",fmt) == ERR) 18 { 19 20 } 21 } 22 23 UnSetColor(glm::ivec2((int)fg,(int)bg)); 24 25}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問