質問編集履歴

5

タイトルと質問文を修正しました。

2020/10/08 08:32

投稿

ddp
ddp

score17

test CHANGED
@@ -1 +1 @@
1
- C++ 16bitの数値が羅列されたテキスト形式のファイルを読み込みvectorに格納する方法
1
+ C++ バイナリ形式のファイルを読み込みvectorに格納する方法
test CHANGED
@@ -1,6 +1,4 @@
1
- 16bitの数値羅列されたテキスト形式のファイルを読み込み、8bitごとの数値をvector a 追記して格納していきたいのです。
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

環境について更新

2020/10/08 08:32

投稿

ddp
ddp

score17

test CHANGED
File without changes
test CHANGED
@@ -168,6 +168,24 @@
168
168
 
169
169
 
170
170
 
171
- 環境はwindows10です。
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

タイトルと質問文を合わせました。

2020/10/08 07:52

投稿

ddp
ddp

score17

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- バイナリ形式のファイルを読み込み、8bitごとの数値をvector a に追記して格納していきたいのです。
1
+ 16bitの数値が羅列されたテキスト形式のファイルを読み込み、8bitごとの数値をvector a に追記して格納していきたいのです。
2
2
 
3
3
 
4
4
 

2

タイトルを変更しました

2020/10/08 07:32

投稿

ddp
ddp

score17

test CHANGED
@@ -1 +1 @@
1
- C++ バイナリ形式のファイルを読み込みvectorに格納する方法
1
+ C++ 16bitの数値が羅列されたテキスト形式のファイルを読み込みvectorに格納する方法
test CHANGED
File without changes

1

読み込んでいるファイルの内容を追記しました。

2020/10/08 07:31

投稿

ddp
ddp

score17

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