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

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

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

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

10.06.2016, 17:27. Просмотров 169. Ответов 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;
}
Миниатюры
Выводится null-строка   Выводится null-строка  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2016, 17:27     Выводится null-строка
Посмотрите здесь:

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

не выводится строка в 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...

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

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

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

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

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

Конструктор без параметров: не выводится строка в приведенном коде - 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++
Дана строка. Подсчитать сколько раз первая строка входит во вторую. Например: вводим &quot;при&quot; (строка должна вводиться с клавиатуры, как на...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5274 / 4594 / 1539
Регистрация: 14.04.2014
Сообщений: 18,243
10.06.2016, 17:41     Выводится null-строка #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
n тоже сделай unsigned long и в printf() должно быть "&lu".

Добавлено через 1 минуту
У тебя ещё и локальный объект возвращается. Сделай s глобальной.
Mendel
2 / 2 / 0
Регистрация: 19.09.2015
Сообщений: 109
10.06.2016, 17:46  [ТС]     Выводится null-строка #3
Поменял %d на %lu и все заработало. Спасибо.
Ответ Создать тему
Опции темы

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