2013-03-24 3 views
-5

Как я могу изменить это, чтобы он работал без cin.get?как я могу сделать эту работу без cin.get()

void convert(int bit[],string &s) 
{  
    char c = 0; 
    for(int i = 0;i < 8;i++) 
    { 
     c = c+(bit[i] << i); 
    } 
    cin.get(); 
    cout << c; 
} 
+5

Почему у вас есть 'cin.get()' там вообще? – Mat

+1

Пожалуйста, определите «работы». Поскольку вы не используете результат 'cin.get()', вы должны просто удалить эту строку. –

+0

, потому что без него cout не будет отображаться c – user2175394

ответ

0

Не совсем понятно, что вы даже пытаетесь сделать. Вы выбрасываете с возвратным значением cin.get(), поэтому эффект только извлекает символ из входного потока и выполняет любые действия , связанные с извлечением символа. (std::cout будет привязан к std::cin по умолчанию, так что один из побочных эффектов будет быть промывать std::cin.) Если вы хотите, флеш, вы можете сделать это непосредственно, например, std::cout.flush(), или просто std::cout << c << flush. Обратите внимание, однако, что вывод символа может не сделать , что вы хотите. Если вы хотите вывести фактическое значение c, , а не интерпретировать его как закодированный символ, у вас будет , чтобы преобразовать его в интегральный тип больше, чем char. И , конечно, если подписанный символ подписан, вы можете его конвертировать в unsigned char, если только вы не готовы иметь дело с отрицательными значениями.

Смежные вопросы