Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Проблема с выводом строки - 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; ... }; Затем объявляю...

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

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

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

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

9
fasked
Эксперт С++
4963 / 2543 / 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];
1
Zetway
13 / 13 / 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; 
}
выводит только вторую половину строки
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:28 #4
Возможно, вы где-то случайно смещаете указатель. Поищите в других функциях изменения указателя char* Str, вроде Str++ или присвоения.
0
Zetway
13 / 13 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:28  [ТС] #5
почему-то курсор идет на начало и работает инсерт...
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.03.2011, 18:31 #6
Zetway, читать мысли на расстоянии - это сложно. Если бы вы были рядом... А так - нет, не получится. Выложите весь код, ошибка не в Cue::Out().
0
Zetway
13 / 13 / 2
Регистрация: 08.08.2010
Сообщений: 117
16.03.2011, 18:36  [ТС] #7
Вот проект, юзаю VS 2010
0
Вложения
Тип файла: rar blondie c++.rar (5.43 Мб, 8 просмотров)
talis
792 / 544 / 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);
}
0
fasked
Эксперт С++
4963 / 2543 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
16.03.2011, 18:48 #9
Цитата Сообщение от talis Посмотреть сообщение
Str += RightStr[i];
C++
1
Str[i] = RightStr[i];
0
Zetway
13 / 13 / 2
Регистрация: 08.08.2010
Сообщений: 117
17.03.2011, 08:41  [ТС] #10
talis, посмотрите в мейн, я много чего не использую вообще ис того что написал...

Добавлено через 13 часов 8 минут
Эй, люди! проблема не решена!
0
17.03.2011, 08:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2011, 08:41
Привет! Вот еще темы с ответами:

Трабла с функцией ( - 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...

Трабла с LibCurl - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;time.h&gt; #include &lt;curl/curl.h&gt; ...

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

трабла кодом(Функция) - 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; ...


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

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

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