Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mendel
2 / 2 / 0
Регистрация: 19.09.2015
Сообщений: 109
Завершенные тесты: 1
#1

Выводится null-строка - C++

10.06.2016, 17:27. Просмотров 191. Ответов 2
Метки нет (Все метки)

Всем привет. Есть код, преобразующий целое беззнаковое число из двоичной сс(изображено в виде строки) в десятичную(уже числовое представление) и обратно полученное число в двоичную "строку".
Все работало, но стоило в коде поменять unsigned int на unsigned long(отметил в коде комментариями где менял), то получается такая вот ерунда(скрины ниже, 1 скрин - unsigned int, 2 - unsigned long). В чем может быть дело?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <conio.h>
char *inttostr(unsigned long chislo);      //!
unsigned long strtoint(char *s);             //!
 
void main(void)
{
   clrscr();
   char *Numbers[]= {"1001","110011","100","1010","1111","110"};
   for (int i=0; i<6; i++)
     printf("String %s, \t Int %d, \t String %s\n", Numbers[i],
       strtoint(Numbers[i]), inttostr(strtoint(Numbers[i])));
   getch();
}
 
char *inttostr(unsigned long chislo)             //!
{
   char *s="000000";
   int n, pos=5;
   while (chislo != 0)
   {
     n=chislo%2;
     chislo/=2;
     if (n==0) s[pos--]='0';   
     else s[pos--]='1';
   }
   while (pos>-1)
     s[pos--]='0';
   return s;
}
unsigned long strtoint(char *s)      //!
{
   unsigned long sum=0;             //!
   while (*s)
    sum=sum*2+(*s++-'0');
   return sum;
}
0
Миниатюры
Выводится null-строка   Выводится null-строка  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2016, 17:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выводится null-строка (C++):

Не выводится строка через cout - C++
Ошибка вылетает на этапе выполнение метода show() , а именно вместо возраста какая то хрень выводится #include &lt;iostream&gt; ...

Неверно выводится симметричная строка - C++
Проблема с выводом данной программы, надо что бы программа выводила в двоичном коде там где начало кода симметрично концу 1 101 111 1001 и...

не выводится строка в Visual Studio - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(int argc, char *argv) { string s=&quot;Press the enter...

Выводится лишняя строка из файла - C++
Здравствуйте. При выводе из файла выводится лишняя строка. Т.е. если 13 строк в файле, то выводится 14 пустая строка. Вот код: void...

Почему лишний раз выводится строка? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt; using namespace std; int main() { ...

Указатели, почему выводится строка вместо символа? - C++
Понемногу мозги закипают, сижу разбираюсь с указателями, вот наваял пример, но в моем понимании, на экран должен вылазить символ, а выходит...

2
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
10.06.2016, 17:41 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
n тоже сделай unsigned long и в printf() должно быть "&lu".

Добавлено через 1 минуту
У тебя ещё и локальный объект возвращается. Сделай s глобальной.
1
Mendel
2 / 2 / 0
Регистрация: 19.09.2015
Сообщений: 109
Завершенные тесты: 1
10.06.2016, 17:46  [ТС] #3
Поменял %d на %lu и все заработало. Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2016, 17:46
Привет! Вот еще темы с ответами:

Конструктор без параметров: не выводится строка в приведенном коде - C++
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &lt;iostream&gt; using namespace::std; class String { protected: enum { SZ = 80 };...

Символьная строка в функции get_string() не выводится в методе print - C++
Введенная символьная строка в функции get_string() не выводится в методе print. В чем ошибка??? Заранее спасибо! # include...

Выводится одна лишняя строка (работа с бинарным файлом) - C++
Буду благодарен за помощь. #include&lt;iostream&gt; #include &lt;fstream&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include &lt;cstring&gt; ...

Не работает код: m_web1.Navigate ('gidro.htm',0,0,NULL,NULL); - C++
Друзья помогите начинаюшему значит делаю m_web1.Navigate ('с:\gidro.htm',0,0,NULL,NULL);работает делаю m_web1.Navigate...


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

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

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