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

трабла с выводом строки - C++

Восстановить пароль Регистрация
 
Zetway
 Аватар для Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:07     трабла с выводом строки #1
вот код который неправильно работает:
C++
1
2
3
4
5
6
7
8
9
10
void Cue::Out()
{   
    char ch;    
    for (int i=0; i<curInd; ++i)
    {       
        ch = Str[i++];
        cout<<ch;
    }
    cout<<endl; 
}
вот хэдер
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
#pragma once
 
class Cue
{
    int size, step, curInd;
    char* Str;
    void newMem();
    void terminate(char * st, int index);
public:
    Cue();
    ~Cue(void);
 
 
    Cue (char* pStr, int iSize);
    Cue (const Cue & right);
    
    Cue & operator =(const Cue & right);
    Cue & operator +( const Cue & right);
    Cue & operator +(const char * right);
    Cue & operator +(const char right);
    Cue & operator +=(const char right);
    Cue & operator +=(const Cue & right);
    Cue & operator +=(const char * right);
 
 
    void Out();
    void Input();
};
выводит только некоторые буквы стороки Str, смотрел в вотче строка правильная. пользуюсь юникодом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
16.03.2011, 18:08     трабла с выводом строки #2
Цитата Сообщение от Zetway Посмотреть сообщение
for (int i=0; i<curInd; ++i)
* * * * * * * * ch = Str[i++];
Переменная i увеличвается 2 раза за одну итерацию цикла. Правильная версия будет такой:
C++
1
ch = Str[i];
Zetway
 Аватар для Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:25  [ТС]     трабла с выводом строки #3
C++
1
2
3
4
5
6
7
8
9
10
void Cue::Out()
{   
    char ch;    
    for (int i=0; i<curInd; ++i)
    {       
        ch = Str[i];
        cout<<ch;
    }
    cout<<endl; 
}
выводит только вторую половину строки
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:28     трабла с выводом строки #4
Возможно, вы где-то случайно смещаете указатель. Поищите в других функциях изменения указателя char* Str, вроде Str++ или присвоения.
Zetway
 Аватар для Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:28  [ТС]     трабла с выводом строки #5
почему-то курсор идет на начало и работает инсерт...
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:31     трабла с выводом строки #6
Zetway, читать мысли на расстоянии - это сложно. Если бы вы были рядом... А так - нет, не получится. Выложите весь код, ошибка не в Cue::Out().
Zetway
 Аватар для Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:36  [ТС]     трабла с выводом строки #7
Вот проект, юзаю VS 2010
Вложения
Тип файла: rar blondie c++.rar (5.43 Мб, 8 просмотров)
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:45     трабла с выводом строки #8
Visual Studio нет, отладить не смог. Но есть соображение.

cue.cpp, в районе строки 24:
C++
1
2
3
4
5
6
7
8
Cue::Cue(char* RightStr, int iSize):size(iSize), step(iSize/2), curInd(0),
Str(new char [size])
{
    //cout<<"Cue constr (int,int)"<<size<<" "<<this<<endl;
    for (int i=0; i<size; ++i)
        Str += RightStr[i];  //тут возможно изменение указателя. Проверьте
    terminate(Str, curInd);
}
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
16.03.2011, 18:48     трабла с выводом строки #9
Цитата Сообщение от talis Посмотреть сообщение
Str += RightStr[i];
C++
1
Str[i] = RightStr[i];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2011, 08:41     трабла с выводом строки
Еще ссылки по теме:

Трабла с прогой C++
Трабла с кодом C++
C++ Трабла с конструктором

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

Или воспользуйтесь поиском по форуму:
Zetway
 Аватар для Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
17.03.2011, 08:41  [ТС]     трабла с выводом строки #10
talis, посмотрите в мейн, я много чего не использую вообще ис того что написал...

Добавлено через 13 часов 8 минут
Эй, люди! проблема не решена!
Yandex
Объявления
17.03.2011, 08:41     трабла с выводом строки
Ответ Создать тему
Опции темы

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