以下のプログラムで接続先からバイナリデータを取得しているのですが
coutで出力しても画面に何も表示されません。
------------------------------------------------------
/*include部分は省きます*/
std::string bin; //1
clx::http session(clx::uri::encode(ip), 80); //2
session.get(clx::uri::encode(param)); //3
bin = session.body(); //4
std::cout << bin << std::endl; //5
------------------------------------------------------
上記プログラムを空ファイルにリダイレクトしバイナリエディタで見たら
ちゃんとデータは書き込まれていました。
5行目を以下のように変えても空欄が出力されただけで文字は表示されませんでした
std::cout << std::hex << bin << std::endl;
しかし以下のようにすると文字数は表示されました。
std::cout << bin.length() << std::endl;
やりたいこととしてはphpのpack()、unpack()的な部分です。
例えば
値をフォーマットを指定してバイナリデータとして出力
$val=pack("L", 35);
とか
バイナリデータを変数から指定バイト分取り出して10進数で画面に出力
$bin=(バイナリデータ);
$val=unpack("c",$bin);
echo(sprintf("%d",$val));
です。
バイナリの扱いはリトルエンディアンです。
ご教示お願いしますm(__)m
No.2ベストアンサー
- 回答日時:
#include <iostream>
#include <iomanip>
#include <string>
#include <algorithm>
using namespace std;
int main() {
const char raw[] = { 0x6a, 0x54, 0x5, 0x7a };
string bin(raw,4);
cout.fill('0');
for_each( bin.begin(), bin.end(),
[](char ch) { cout << hex << setw(2) << ((int)ch & 0xff) << ' '; });
cout << endl;
}
/* 実行結果
6a 54 05 7a
*/
お礼が大変遅くなりました。
教えていただいたとおりに試したところ期待通りの処理が書けました。
具体例を記載していただき大変助かりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- C言語・C++・C# このプログラミング誰か教えてください。 2 2022/04/22 18:48
- C言語・C++・C# このプログラミング誰か教えてください 9 2022/04/22 18:50
- C言語・C++・C# メインプログラムに#include <algorithm>を書いて、 そのメインプログラムが // 3 2023/05/02 11:24
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
enumの値から定義名を文字列化...
-
#include "fstream.h"
-
指定した文字を削除したい
-
VC++で文字列から任意の文字を...
-
switch文のエラーについて
-
CStdioFile での数値データの読...
-
構造体配列のvectorへの変換と...
-
C++で行列とベクトルの積を求める
-
C言語 ストリームについて。
-
#define中の#のエスケープ
-
C++のifstreamの使い方
-
なぜ、C++の標準ヘッダをインク...
-
atlbase.h と afxwin.hの同時定義
-
JPEGやPNGが読めるLoadImage関数
-
C++でShowCursorを使いたい。
-
マイナスからプラスへ転じた時...
-
Notepad++の関数リスト表示の変...
-
DWORDの実際の型は何でしょうか
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
std::map の const 修飾について
-
構文エラーが出ているのですが...
-
switch文のエラーについて
-
enumの値から定義名を文字列化...
-
VC++で文字列から任意の文字を...
-
構造体配列のvectorへの変換と...
-
wstringの主力
-
vectorのイテレータを大小比較...
-
std::wstringのメモリリークに...
-
opencvを使って画像比較
-
ヘッダーファイルがインクルー...
-
C++で2次元配列charをループしたい
-
【C++】ヘッダ内でstringを格納...
-
#define中の#のエスケープ
-
リモートデスクトップの接続元I...
-
string型のフォーマット書式指...
-
ファイル名のリスト取得について2
-
C++での <iostream.h>と<iostre...
-
gccでコンパイル時のエラー
-
C言語 ストリームについて。
おすすめ情報