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

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

Войти
Регистрация
Восстановить пароль
 
Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
#1

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

16.03.2011, 18:07. Просмотров 358. Ответов 9
Метки нет (Все метки)

вот код который неправильно работает:
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, смотрел в вотче строка правильная. пользуюсь юникодом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2011, 18:07     трабла с выводом строки
Посмотрите здесь:

Проблема с выводом строки - C++
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;conio.h&gt; #define SIZE 100 using namespace std; class Adress { char fam; ...

Структура и класс string. Проблема с выводом строки. - C++
Такая проблема: объявляю структуру с классом string: struct exam { std::string name; ... }; Затем объявляю...

OemToChar(), OemToCharBuff() - ввод строки на русском с дальнейшим выводом - C++
И снова эта же тема... Или я принцыыыпп работы ни в какую не понимаю или шо :cry: Почему на консоль все равно выводит не то, что...

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

Трабла с конструктором - C++
Компилятор никаких ошибок не выдает, но программа не запускается. using namespace std; class Cpmv { public: struct Info ...

Трабла с прогой - C++
&quot;дан радиус окружности. Найти длину окружности и площадь круга&quot; как вычислить подобную задачу на С. Жду ответа. С уважением.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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
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
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:28     трабла с выводом строки #4
Возможно, вы где-то случайно смещаете указатель. Поищите в других функциях изменения указателя char* Str, вроде Str++ или присвоения.
Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:28  [ТС]     трабла с выводом строки #5
почему-то курсор идет на начало и работает инсерт...
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:31     трабла с выводом строки #6
Zetway, читать мысли на расстоянии - это сложно. Если бы вы были рядом... А так - нет, не получится. Выложите весь код, ошибка не в Cue::Out().
Zetway
12 / 12 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:36  [ТС]     трабла с выводом строки #7
Вот проект, юзаю VS 2010
Вложения
Тип файла: rar blondie c++.rar (5.43 Мб, 8 просмотров)
talis
791 / 543 / 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
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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     трабла с выводом строки
Еще ссылки по теме:

трабла с MessageBox - C++
Вот такая вот задачка сначала задается текст в ANSI ,затем его конвертируем в UNICODE и должны вывести его 3 способами - через _tprintf ,...

Трабла с функцией ( - C++
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; int main() { } char m(char s) { char...

трабла кодом(Функция) - C++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; void z(float p,int u) { int i; int F1,F2,S1,S2,K1,K2; ...

Опять трабла с ответом - C++
вот такой алгоритм 1*10+2*9+3*8+4*7+5*6 #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; const int n=100; int main (int argc, char *...


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

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

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

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