質問するログイン新規登録

回答編集履歴

3

動きそうなコードを追加

2021/06/01 06:27

投稿

退会済みユーザー
answer CHANGED
@@ -45,4 +45,32 @@
45
45
  追記
46
46
  とりあえず問題点だけ列挙します。
47
47
  ・「printf("%s\n", chr.data()」の「chr.data()」がヌル文字による終端が行われていない。
48
- ・他のキー入力が行われるまで、最後のキー入力が保持され続ける。
48
+ ・他のキー入力が行われるまで、最後のキー入力が保持され続ける。
49
+
50
+ ```cpp
51
+ void FrameWork::Window::ClearInputKeyBoard()
52
+ {
53
+ // キー入力状態クリア処理を追加
54
+ this->inputKey = 0;
55
+ }
56
+
57
+ void Title::Update()
58
+ {
59
+ if (windowContext->InputKeyBoard() != 0)
60
+ {
61
+ chr.push_back((char)windowContext->InputKeyBoard());
62
+
63
+ // キー入力状態をクリア
64
+ windowContext->ClearInputKeyBoard();
65
+
66
+ // 出力用に終端文字を追加
67
+ chr.push_back('\0');
68
+
69
+ printf("%s\n", chr.data());
70
+
71
+ // 出力用に追加した、終端文字を削除
72
+ chr.pop_back();
73
+ }
74
+ }
75
+
76
+ ```

2

問題点など追記

2021/06/01 06:27

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,6 @@
1
1
  公式リファレンスにある通りですが、「glfwSetCharCallback()」で扱うのはUnicodeのコードポイントです。
2
2
  少なくとも、unsigned int型をchar型にキャストして扱えるものじゃないでしょう。
3
+ (ASCIIの範囲であれば問題ありませんが)
3
4
 
4
5
  [OpenGL_FrameWork/OpenGL_FrameWork/Window.cpp](https://github.com/Shigurechan/OpenGL_FrameWork/blob/8e9d4237764b68d03d35f7c65b31889864f4a723/OpenGL_FrameWork/Window.cpp)
5
6
 
@@ -38,4 +39,10 @@
38
39
 
39
40
 
40
41
 
41
- ```
42
+ ```
43
+
44
+
45
+ 追記
46
+ とりあえず問題点だけ列挙します。
47
+ ・「printf("%s\n", chr.data()」の「chr.data()」がヌル文字による終端が行われていない。
48
+ ・他のキー入力が行われるまで、最後のキー入力が保持され続ける。

1

不足文言修正

2021/05/27 01:36

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- 公式リファレンスにある通りですが、「glfwSetCharCallback()」で扱うのはUnicodeです。
1
+ 公式リファレンスにある通りですが、「glfwSetCharCallback()」で扱うのはUnicodeのコードポイントです。
2
2
  少なくとも、unsigned int型をchar型にキャストして扱えるものじゃないでしょう。
3
3
 
4
4
  [OpenGL_FrameWork/OpenGL_FrameWork/Window.cpp](https://github.com/Shigurechan/OpenGL_FrameWork/blob/8e9d4237764b68d03d35f7c65b31889864f4a723/OpenGL_FrameWork/Window.cpp)