質問編集履歴
5
タイトルと質問文を修正しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C++
|
1
|
+
C++ バイナリ形式のファイルを読み込みvectorに格納する方法
|
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
16
|
1
|
+
以下のコードは16進数の数値羅列が記述されたテキスト形式のファイルを読み込み、8bitごとの数値を16進数でvector aに格納するコードです。
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
|
6
4
|
|
@@ -130,15 +128,21 @@
|
|
130
128
|
|
131
129
|
```
|
132
130
|
|
131
|
+
上記のようなテキスト形式ではなく、バイナリ形式のファイルを読み込み、8bitごとの数値を16進数で格納する場合にはどのように記述すれば良いでしょうか。
|
133
132
|
|
134
133
|
|
134
|
+
|
135
|
-
コンパイル時にエラーは無いですが、実行すると以下の画像のよ
|
135
|
+
~~コンパイル時にエラーは無いですが、実行すると以下の画像のよ
|
136
|
+
|
137
|
+
うな出力結果となります。
|
136
138
|
|
137
139
|
コンパイルコマンドg++ -std=c++14 -g -Og -pipe -Wall
|
138
140
|
|
141
|
+
~~
|
142
|
+
|
143
|
+
~~※ascii部分?をうまくコピーできないので、画像で張り付けています。~~
|
139
144
|
|
140
145
|
|
141
|
-
※ascii部分?をうまくコピーできないので、画像で張り付けています。
|
142
146
|
|
143
147
|
![sublime-text コンソール](0e08002426d299ee250ebb35f5de8183.png)
|
144
148
|
|
@@ -148,7 +152,7 @@
|
|
148
152
|
|
149
153
|
|
150
154
|
|
151
|
-
画像にもありますが、teminateされています。
|
155
|
+
~~画像にもありますが、teminateされています。~~
|
152
156
|
|
153
157
|
> terminate called after throwing an instance of 'std::invalid_argument'
|
154
158
|
|
@@ -156,15 +160,17 @@
|
|
156
160
|
|
157
161
|
|
158
162
|
|
159
|
-
お聞きしたい点は2点あります。
|
163
|
+
~~お聞きしたい点は2点あります。~~
|
160
164
|
|
161
|
-
1. terminateされる理由
|
165
|
+
1. ~~terminateされる理由~~
|
162
166
|
|
163
|
-
stoi部分で不正な引数が使用されているとあるようですが、なぜこのようになるのかわかりません。
|
167
|
+
~~stoi部分で不正な引数が使用されているとあるようですが、なぜこのようになるのかわかりません。~~
|
164
168
|
|
165
|
-
1. 出力結果
|
169
|
+
1. ~~出力結果~~
|
166
170
|
|
167
|
-
出力がasciiになっている(一部のみ?)理由がわかりません。
|
171
|
+
~~出力がasciiになっている(一部のみ?)理由がわかりません。
|
172
|
+
|
173
|
+
~~
|
168
174
|
|
169
175
|
|
170
176
|
|
@@ -184,7 +190,7 @@
|
|
184
190
|
|
185
191
|
Thread model: win32
|
186
192
|
|
187
|
-
gcc version 9.2.0 (MinGW.org GCC Build-20200227-1)
|
193
|
+
gcc version 9.2.0 (MinGW.org GCC Build-20200227-1)~~
|
188
194
|
|
189
195
|
|
190
196
|
|
4
環境について更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -168,6 +168,24 @@
|
|
168
168
|
|
169
169
|
|
170
170
|
|
171
|
-
環境は
|
171
|
+
環境はWindowsで以下の通りです。
|
172
|
+
|
173
|
+
> $ g++ -v
|
174
|
+
|
175
|
+
Using built-in specs.
|
176
|
+
|
177
|
+
COLLECT_GCC=C:\MinGW\bin\g++.exe
|
178
|
+
|
179
|
+
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
|
180
|
+
|
181
|
+
Target: mingw32
|
182
|
+
|
183
|
+
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-static --enable-shared --enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --disable-build-format-warnings --prefix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --with-pkgversion='MinGW.org GCC Build-20200227-1'
|
184
|
+
|
185
|
+
Thread model: win32
|
186
|
+
|
187
|
+
gcc version 9.2.0 (MinGW.org GCC Build-20200227-1)
|
188
|
+
|
189
|
+
|
172
190
|
|
173
191
|
どなたかご教授ください。以上、よろしくお願いいたします。
|
3
タイトルと質問文を合わせました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
16bitの数値が羅列されたテキスト形式のファイルを読み込み、8bitごとの数値をvector a に追記して格納していきたいのです。
|
2
2
|
|
3
3
|
|
4
4
|
|
2
タイトルを変更しました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C++
|
1
|
+
C++ 16bitの数値が羅列されたテキスト形式のファイルを読み込みvectorに格納する方法
|
test
CHANGED
File without changes
|
1
読み込んでいるファイルの内容を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -94,6 +94,40 @@
|
|
94
94
|
|
95
95
|
|
96
96
|
|
97
|
+
//読み込んでいるファイル("../test")
|
98
|
+
|
99
|
+
7f45 4c46 0101 0100 0000 0000 0000 0000
|
100
|
+
|
101
|
+
0300 2800 0100 0000 b125 0000 3400 0000
|
102
|
+
|
103
|
+
54d2 2800 0004 0005 3400 2000 0a00 2800
|
104
|
+
|
105
|
+
2b00 2a00 0100 0070 b47e 0200 b47e 0200
|
106
|
+
|
107
|
+
b47e 0200 8008 0000 8008 0000 0400 0000
|
108
|
+
|
109
|
+
0400 0000 0600 0000 3400 0000 3400 0000
|
110
|
+
|
111
|
+
3400 0000 4001 0000 4001 0000 0500 0000
|
112
|
+
|
113
|
+
0400 0000 0300 0000 7401 0000 7401 0000
|
114
|
+
|
115
|
+
7401 0000 1900 0000 1900 0000 0400 0000
|
116
|
+
|
117
|
+
0100 0000 0100 0000 0000 0000 0000 0000
|
118
|
+
|
119
|
+
0000 0000 3887 0200 3887 0200 0500 0000
|
120
|
+
|
121
|
+
0000 0100 0100 0000 5090 0200 5090 0300
|
122
|
+
|
123
|
+
5090 0300 d00f 0000 e410 0000 0600 0000
|
124
|
+
|
125
|
+
0000 0100 0200 0000 209d 0200 209d 0300
|
126
|
+
|
127
|
+
209d 0300 2001 0000 2001 0000 0600 0000
|
128
|
+
|
129
|
+
0400 0000 0400 0000 9001 0000 9001 0000
|
130
|
+
|
97
131
|
```
|
98
132
|
|
99
133
|
|