0 / 0 / 0
Регистрация: 06.12.2013
Сообщений: 30
1

Перевод из int в char* внутри функции работает, а если вернуть строку то нет

22.12.2013, 00:01. Показов 755. Ответов 1
Метки нет (Все метки)

Надо перевесит int в char* в методе класса, и вернуть char*.
Перепробовал кучу всего результат 1 и тот же.
boss.cpp
C++
1
2
3
4
5
6
7
8
9
char* boss::getitem()
{
    int radix = 10;  //система счисления
    char buffer[20]; //результат
    char *p;  //указатель на результат
    p = itoa(podc,buffer,radix);
    //если тут будет cout все будет норм 
        return p;
}
фактически это гетер.

queue.cpp
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
void queue::save()
{
 
    int value;
    FILE *Ptr;
 
    Ptr=fopen("kadrs.txt","w");// что бы продолжать записть поменять w  на w+
    char danila[100];//куда ж без этого?
 
    if (    typeid(*data)==typeid(boss) )
        fprintf(Ptr,"%s","1");
    if (    typeid(*data)==typeid(engeneer) )
        fprintf(Ptr,"%s","0");
 
        fprintf(Ptr,"%s","\n");
        fprintf(Ptr,"%s",data->getitem());
        fprintf(Ptr,"%s","\n");
        strcpy( danila, (data->getname()).c_str()); //криво но менять все долго
        fprintf(Ptr,"%s",danila);
        fprintf(Ptr,"%s","\n");
        fprintf(Ptr,"%d",data->getage());
        fprintf(Ptr,"%s","\n");
 
 
    fclose(Ptr);
 
}
Тут я использую абстрактные классы и хочу их записать в файл.
Итог если p=22;(до того как я его вернул), то в kadrs.txt нечего нет (речь о "p" а не о kadrs.txt в целом ).
Ну или же p= МММ?ш ; если:

C++
1
2
3
4
5
6
7
char* boss::getitem()
{
    char a[10];
    int b = 12;
    *a = (char)podc;
    return a;
}
Добавлено через 5 минут
может кому пригодится
boss.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
using namespace std;
class boss : virtual public kadr
{    
    int podc; // людей в подчинении
    public:
        //конструкто и диструктор
        boss(){}
        boss ( int p,string n,int a):kadr(n,a)
    {
        podc=p;
    };
        ~boss();
        virtual void show();    
        virtual char* getitem();    
};
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2013, 00:01
Ответы с готовыми решениями:

Перевод int в char (строку)
Есть код я покажу только части для указания на проблему int c=0; char a={' ',' '};...

Динамическое выделение памяти внутри функции (что вернуть из функции, если не удалось выделить память?)
такое дело, есть функция, которая выполняет некоторую операцию, функция при успешном выполнении...

Перевод char в int работает только для положительных, не дробных чисел
{ int i, Chislo=0; if(!StrLen(str)) return 0; for(i=0;i&lt;StrLen(str);i++)...

Реализация функции char *padl(const char *string, int len, int c=' ')
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо...

1
:)
Эксперт С++
4769 / 3263 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.12.2013, 00:58 2
shinarthas, возвращается указатель на локальный массив buffer, который будет уничтожен при выходе из функции getitem. Либо надо передавать в getitem ранее выделенный буфер, либо выделять внутри getitem память динамически.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2013, 00:58

с#. перевод int в char
Не подскажите, как перевести int в char? пробовал явное (char) и convert.ToChar() но вместо цифры...

Перевод char в int
Доброго времени суток. покопался по схожим темам,но так и не нашёл ответа. На вводе с клвиатуры...

Перевод из int в char
Пытаюсь перевести число int в строку char. На экран постоянно выводит какие-то иероглифы. Не могли...

Перевод из int в char
программа перевода из int в char, мне нужно написать эту же программу, но не используя n как...

Перевод char в int
Доброго времени суток, форумчане:senor:. Начинаю углубляться с++ вместе с заданием по курсовой:)...

Перевод из char в int
Подскажите пожалуйста! У меня имеется массив символов, то бишь строка. Я хочу преобразовывать...


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

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

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