在C ++中从二进制转换为字符串

时间:2015-06-23 17:42:00

标签: c++

在Native C ++中,我编写了一个将二进制文件转换为字符串的应用程序。我在互联网上搜索了我的问题!但我没有找到符合我问题的任何答案。所以你能说出来吗?怎么做?我希望控制台写"请输入二进制字符串:"当用户键入二进制文件并按下时输入控制台类型" \ n我的二进制文件的字符串值'为\ n"在句子的下方,我的二进制文件转换了字符串。

这是我的代码,但它将文本转换为二进制!!我怎样才能改变它!!这就是我的意思!!

#include <iostream>
#include <string>
#include <bitset>
#include <windows.h>
#include <stdio.h>

using namespace std;

int main()
{
    SetConsoleTitle("Binary To Text Converter 1.0");
char letter = ' ', playAgain = 'Y';
string word = " ";

cout << "\t**Binary To Text Convertor 1.0**\n\n";

while (playAgain == 'Y'){

    cout << "Please Enter A Binary Number: ";

    getline (cin, word, '\n');

    cout << "\nThe String Value For '" << word << "' Is \n";

    for (unsigned int wordPosition = 0; wordPosition < word.size(); ++wordPosition){

        letter = word[wordPosition];

        bitset <8> binary(letter);

        cout << binary;
        }
cout << "\n\nWould You Like To Convert Any Another Binary Number? (Y/N)";

    cin >> playAgain;

    if (playAgain != 'Y'){
        cout << "\n\nExiting program.";
        playAgain = 'N';
        }
        cin.ignore();
}



return 0;
}

1 个答案:

答案 0 :(得分:2)

读取用户输入流的每8位,并通过按位移位每个数字将其存储到char中:

char strToChar(const char* str) {
    char parsed = 0;
    for (int i = 0; i < 8; i++) {
        if (str[i] == '1') {
            parsed |= 1 << (7 - i);
        }
    }
    return parsed;
}

然后,打印出这些字符。

编辑:这假定用户输入和输出(使用ASCII编码):

输入二进制字符串:0100100001101001

转换:&#34;嗨&#34;