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

Ввод и вывод строки собственного класса - C++

Восстановить пароль Регистрация
 
Amy_lee
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 15
05.04.2012, 23:10     Ввод и вывод строки собственного класса #1
Добрый вечер. Пишу свой класс строк, беда в том, что во вводе что-то, видимо, не так..В общем, строка вводится, но не выводится Все получается, если только строка уже задана.. Помогите, пожалуйста )
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <string>
#include<conio.h>
using namespace std;
 
class mystr
{
    char* str;
    int length;
public:
    mystr();
    mystr(const char *s);
    mystr(const mystr& str);
    ~mystr() {delete [] str;};
 
    friend ostream& operator<<(ostream& os, const mystr& str);
    void vvod();
 
 
};
mystr::mystr()    
{
    str = new char [1];
    str[0] = '\0';
    length = 0;
}
mystr::mystr (const char *s)
{
    length = strlen(s);
    str = new char[length+1];  
    strcpy(str,s);
}
mystr::mystr(const mystr& s)
{
    length = s.length;
    str = new char [length+1];
    strcpy(str, s.str);
}
 
 
ostream& operator<<(ostream& os, const mystr& s)
{
    os << s.str;
    return os;
}
 
void mystr:: vvod()
{
    int i=0;
    int size = 5;
    char * str = new char [size];
 
    do{
    while(i < size){
        str[i] = getc(stdin);
        if(str[i] == '\n') {str[i] = 0; i++; break;}
        i++;
    }
    if(str[i-1])
    {
        char *newstr = new char[size*2];
        for(int j=0;j<size;j++) newstr[j] = str[j];
        size*=2;
        delete str;
        str = newstr;
    }
    
    }while(str[i-1]);
    putchar('\n');
}
 
 
int main()
{
    mystr D;
    D.vvod();
 
    mystr A("sdfg");
 
    cout <<A<< "\n"<<D;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 23:10     Ввод и вывод строки собственного класса
Посмотрите здесь:

Ввод и вывод данных класса C++
C++ создание собственного класса
Ввод и вывод строки целиком C++
ввод/вывод класса и файл. C++
C++ Запись в собственного класса бинарный файл собственного
C++ потоковый ввод и вывод строки С++
C++ Ввод/вывод, метод класса
Ввод/вывод строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
05.04.2012, 23:46     Ввод и вывод строки собственного класса #2
неа ... не так
подсказка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
......
istream& operator >> (istream& is, mystr& s)
{
    while ( is.good() )
    {
        char c = is.get();
        if (is.good()) {
            std::cout << c;
            if( c == '\n' ) break;
        }
    }
    return is;
}
 
 int main () {
 
    mystr s ;
    cin >> s;
    return 0;
 }
Amy_lee
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 15
06.04.2012, 09:21  [ТС]     Ввод и вывод строки собственного класса #3
Но вывод все равно не работает..

Добавлено через 26 минут
То есть, если я пытаюсь отдельно вывести значение какой-то введенной строки, то она у меня выводится пустая
Yandex
Объявления
06.04.2012, 09:21     Ввод и вывод строки собственного класса
Ответ Создать тему
Опции темы

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