1

次のシナリオの適切な解決策を見つけるのに苦労しています。

書き込み関数は、write (ch)を呼び出すことによってcin.get (ch)を介してユーザー入力として与えられるconst charを取ります。ch はcharです。

while (c.active()) 
{
 char ch;
 cin.get(ch); // blocking wait for standard input

 if (ch == 3) // ctrl-C to end program
   break;
 c.write(ch);
}

これは正常に動作しますが、「0A00CD88」または「0A 00 CD 88」のような入力を作成し、それをブーストの入力として使用するwriteの入力として使用できるように変更したいと思います。 :asio::buffer .

そのために、C/C++boostを使用できます。

この問題に関する知識を共有してくれた人に感謝します!

4

2 に答える 2

2

次のコードは、最初のシナリオを解決します (スペースなし)

int x;
std::cin >> std::hex >> x;

16 進数を使用する

于 2012-09-03T12:34:04.950 に答える
2

それがあなたの解決策です:

交換するだけ

std::string hex_chars("E8 48 D8 FF FF 8B 0D");

std::string hex_chars;
std::getline(std::cin, hex_chars);

PS私はあなたの質問を正しく理解したと思います:)

于 2012-09-03T13:22:54.163 に答える