Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
1

При выводе на экран переменной string выводится набор левых символов

26.06.2016, 12:22. Просмотров 541. Ответов 13
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    int s;
    string b;
    printf("DEC: ");
    scanf("%i", &s);
    for (int i = 31; i >= 0; i--)
    {
        s += (char)(((b >> i) & 1) + 48);
    }
    printf("BIN: %s", b);
    _getch();
    return 0;
}
Перевод из 10 СС в 2 СС, но выводится на экран набор разных символов

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2016, 12:22
Ответы с готовыми решениями:

Почему при выводе в поток char* выводится весь массив символов?
я немогу вот в чем разобраться есть : int main() { char v = "Fdasda";...

Возможно ли присвоить переменной типа string префикс 'L' при выводе
Возможно ли присвоить переменной типа string префикс 'L' при выводе? Если да,...

Тип string не выводится на экран
как мне сделать вывод переменной surname на русском языке,просто проблема в...

При выводе числа выводится #INF
В общем, задали написать программу вычисления кубического уравнения. В сети...

При выводе числа выводится #INF - C++
Вообщем ,задали написать программу для вычисления значений функции для...

13
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
26.06.2016, 12:25  [ТС] 2
А при попытке использовать cout для вывода
C++
1
cout << b;
Выводит ошибку:
Ошибка C2679 бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует) ConsoleApplication38 c:\users\1\documents\visual studio 2015\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp 23
0
nmcf
6505 / 5738 / 2613
Регистрация: 14.04.2014
Сообщений: 24,475
26.06.2016, 12:25 3
C++
1
2
3
4
5
#include <string>
 
bin += (dec >> i) & 1 ? '1' : '0';
 
cout << bin;
1
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
26.06.2016, 12:27  [ТС] 4
nmcf, ничего не изменилось, на экране набор символов. Использую Visual C++ 2015
0
nmcf
6505 / 5738 / 2613
Регистрация: 14.04.2014
Сообщений: 24,475
26.06.2016, 12:32 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
using namespace std;
 
int main()
{
    int dec;
    string bin;
    printf("DEC: ");
    scanf("%i", &dec);
    for (int i = 31; i >= 0; i--)
    {
        bin += (dec >> i) & 1 ? '1' : '0';
    }
    cout << bin << endl;
    system("pause");
    return 0;
}
1
DrOffset
9013 / 4860 / 1196
Регистрация: 30.01.2014
Сообщений: 7,942
26.06.2016, 12:33 6
Цитата Сообщение от java_user Посмотреть сообщение
printf("BIN: %s", b);
printf не может и не должен корректно выводить содержимое объектов классов. Он работает только с POD.
C++
1
printf("BIN: %s", b.c_str());
А вообще в коде еще полно ошибок. Например, перепутаны b и s.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdio>
#include <string>
 
int main()
{
    int s;
    std::string b;
    printf("DEC: ");
    scanf("%i", &s);
    for (int i = 31; i >= 0; i--)
    {
        b += (char)(((s >> i) & 1) + '0');
    }
    printf("BIN: %s\n", b.c_str());
    return 0;
}
1
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
26.06.2016, 12:59  [ТС] 7
Спасибо, а почему при подобном выводе, пишет ошибку
C++
1
2
    string str = "1221";
    cout << str;
Ошибка C2679 бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)
0
DrOffset
9013 / 4860 / 1196
Регистрация: 30.01.2014
Сообщений: 7,942
26.06.2016, 13:08 8
java_user, #include <string> сделал?
1
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
26.06.2016, 13:11  [ТС] 9
DrOffset,
C++
1
#include <string.h>
было, а в чем их отличие?)
0
DrOffset
9013 / 4860 / 1196
Регистрация: 30.01.2014
Сообщений: 7,942
26.06.2016, 13:14 10
Цитата Сообщение от java_user Посмотреть сообщение
было, а в чем их отличие?)
#include <string.h> или, #include <сstring> - Это заголовочный файл стандартной библиотеки С. Там нет класса std::string, зато есть функции для работы с памятью и С-строками (массивы с терминальным нулем).
#include <string> - Это заголовочный файл стандартной библиотеки С++. Там находится класс std::string и связанные с ним функции, те же операторы ввода\вывода, std::getline и т.д.
0
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
26.06.2016, 13:21  [ТС] 11
Теперь стоит задача, убрать лишние нули, до первой 1, т.е. сделать не 00000000000001010, а 1010 и т.п.

Добавлено через 7 минут
Нужно задать, чтобы цикл не 32 раза повторялся, а столько сколько разрядов в двоичном коде числа dec.
Как можно получить количество разрядов двоичного числа переменной dec ?
0
nmcf
6505 / 5738 / 2613
Регистрация: 14.04.2014
Сообщений: 24,475
26.06.2016, 13:34 12
Просто не выводи всю строку, а только часть с первой единицы.
1
java_user
1 / 1 / 0
Регистрация: 07.04.2016
Сообщений: 66
26.06.2016, 13:41  [ТС] 13
nmcf, подскажи пожалуйста как это сделать
0
nmcf
6505 / 5738 / 2613
Регистрация: 14.04.2014
Сообщений: 24,475
26.06.2016, 13:48 14
C++
1
cout << str.substr(str.find('1'));
1
26.06.2016, 13:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2016, 13:48

При выводе числа выводится #INF
может кто обьяснить где тут проблема? задача - есть два метода исчисления одна...

Выводится мусор при выводе массива в обратном порядке
Дайте пожалуйста объяснение багу, высочившемуся у меня во время выполнения...

Считывание из файла в char - при выводе выводится лишнее
Считываю из файла в строку типа char, если у меня в строке меньше 16 символов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru