Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vozup
7 / 7 / 2
Регистрация: 25.12.2011
Сообщений: 103
#1

При выполнении условия не выходит из цикла

31.10.2013, 23:36. Просмотров 360. Ответов 4
Метки нет (Все метки)

При выполнении условия не выходит из цикла а продолжается и выходит за границы
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
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
void main()
{
    char choice;
    char temp[128];
    const DWORD dwBuferLenght = 128;
    TCHAR tcCurrentDir[128]= { NULL };
 
    if(!GetCurrentDirectory(dwBuferLenght,tcCurrentDir)) cout<<"Error";
    
    CharToOem(tcCurrentDir,temp);
    cout<<temp<<endl;
    cin>>choice;
 
    if(choice == 'u')
    {
        int i = dwBuferLenght;
 
        while(temp[i] != '/')
        {
            temp[i] = NULL;
            i--;
        }
        cout<<temp;
    }
    
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 23:36
Ответы с готовыми решениями:

При выполнении программы выходит ошибка
Когда выполняется программа выходит ошибка: Необработанное исключение по адресу 0x77A8205E...

При выполнении условия завершать цикл
Доброго времени суток.подскажите как сделать,чтобы при выполнении условия цикл сразу завершался. ...

Не выводится правильный ответ при выполнении условия
Привет. Пользуюсь Visual C++ 6.0 В задачке необходимо в случае не выполнения условия вывести...

++i и i++ разница при выполнении цикла
Доброго времени суток! Действительно ли в цикле вида: for(int i = 0; i &lt; n; ++i) {} ++i Будет...

Переписать значения второго массива в первый при выполнении заданного условия
Необходимо написать программу, в которой переписываются значения с второго массива в первый, в том...

4
mytilus
83 / 83 / 26
Регистрация: 04.10.2012
Сообщений: 340
31.10.2013, 23:44 #2
Возможно, надо искать (temp[i] != '\\'), а не (temp[i] != '/').
1
vozup
7 / 7 / 2
Регистрация: 25.12.2011
Сообщений: 103
31.10.2013, 23:49  [ТС] #3
Точно, находит, выводит, но в конце пишет что стек вокруг temp переполнен
0
mytilus
83 / 83 / 26
Регистрация: 04.10.2012
Сообщений: 340
31.10.2013, 23:54 #4
Потому что вы обращаетесь к temp[128], а последний элемент массива - temp[127].
Замените 15-ю строку на:
C++
1
2
dwBuferLenght = GetCurrentDirectory(dwBuferLenght,tcCurrentDir);
if(!dwBuferLenght) cout<<"Error";
Добавлено через 1 минуту
Ах да! Еще константу dwBuferLenght надо переделать в переменную.
1
vozup
7 / 7 / 2
Регистрация: 25.12.2011
Сообщений: 103
31.10.2013, 23:57  [ТС] #5
Просто нет слов. Аж стыдно что такие элементарные вопросы спрашиваю. Большое спасибо!
0
31.10.2013, 23:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 23:57

Программа, переносящая элементы первого массива во второй, при выполнении условия
Программа должна формировать массив y из элементов массива x при выполнении некоторого условия, а...

Не выходит из цикла при использовании append
for (i = 1; i &lt; n; i++) { P.append(P, i, 1); } for (i; i != 1; i--) { S.append(P, i,...

При выполнении определенного условия поменять порядок следования символов строки на противоположный
Заданы 2 строки, состоящие из слов, разделенных пробелами. Если второе слово первой строки такое...


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

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

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