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

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

Восстановить пароль Регистрация
 
Mendel
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 68
10.06.2016, 17:27     Выводится null-строка #1
Всем привет. Есть код, преобразующий целое беззнаковое число из двоичной сс(изображено в виде строки) в десятичную(уже числовое представление) и обратно полученное число в двоичную "строку".
Все работало, но стоило в коде поменять 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++ Символьная строка в функции get_string() не выводится в методе print
Указатели, почему выводится строка вместо символа? C++
C++ не выводится строка в Visual Studio
C++ Конструктор без параметров: не выводится строка в приведенном коде
C++ Не выводится строка через cout
Выводится лишняя строка из файла C++
C++ Дана строка. Подсчитать сколько раз первая строка входит во вторую
C++ Неверно выводится симметричная строка

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

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

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

Текущее время: 08:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru