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

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

Войти
Регистрация
Восстановить пароль
 
vozup
5 / 5 / 0
Регистрация: 25.12.2011
Сообщений: 99
#1

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

31.10.2013, 23:36. Просмотров 312. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 23:36     При выполнении условия не выходит из цикла
Посмотрите здесь:

C++ Не выходит из цикла
C++ Массив: При выполнении условия изменить матрицу A, прибавив к элементам каждой строки заданные элементы x1,x2,…,x5.
C++ При выполнении определенного условия поменять порядок следования символов строки на противоположный
C++ При выполнении программы выходит ошибка
C++ ++i и i++ разница при выполнении цикла
C++ При выполнении условия завершать цикл
Не выходит из цикла C++
Как сделать, что бы point1 сохранил при первом выполнении условия текущий индекс? C++
C++ Программа, переносящая элементы первого массива во второй, при выполнении условия
Переписать значения второго массива в первый при выполнении заданного условия C++
C++ Повторение цикла при наступлении определенного условия
Не срабатывает ввод строки при первом выполнении цикла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
31.10.2013, 23:44     При выполнении условия не выходит из цикла #2
Возможно, надо искать (temp[i] != '\\'), а не (temp[i] != '/').
vozup
5 / 5 / 0
Регистрация: 25.12.2011
Сообщений: 99
31.10.2013, 23:49  [ТС]     При выполнении условия не выходит из цикла #3
Точно, находит, выводит, но в конце пишет что стек вокруг temp переполнен
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
31.10.2013, 23:54     При выполнении условия не выходит из цикла #4
Потому что вы обращаетесь к temp[128], а последний элемент массива - temp[127].
Замените 15-ю строку на:
C++
1
2
dwBuferLenght = GetCurrentDirectory(dwBuferLenght,tcCurrentDir);
if(!dwBuferLenght) cout<<"Error";
Добавлено через 1 минуту
Ах да! Еще константу dwBuferLenght надо переделать в переменную.
vozup
5 / 5 / 0
Регистрация: 25.12.2011
Сообщений: 99
31.10.2013, 23:57  [ТС]     При выполнении условия не выходит из цикла #5
Просто нет слов. Аж стыдно что такие элементарные вопросы спрашиваю. Большое спасибо!
Yandex
Объявления
31.10.2013, 23:57     При выполнении условия не выходит из цикла
Ответ Создать тему
Опции темы

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