Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2011, 21:20   #1
Destinystar3422
Новичок
Джуниор
 
Аватар для Destinystar3422
 
Регистрация: 10.06.2011
Сообщений: 10
Вопрос Бесконечный цикл, но почему?

Код:

Код:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
    wchar_t ws[80];
    int i;
    printf("Kerek egy szoveget: ");
    fgetws(ws, 79, stdin);
    printf("A beolvasott szoveg: %ls", ws);
    for (i = 0; i<= wcslen(ws)-2; i++)
      {
           printf("%lc", towupper(ws[i])  );
           while (i == wcslen(ws)-2)
             {
                 printf("\nAz utolso betu:%ls", ws[i]);
                 break;
             }
      }
    if (ws)
      printf("!!!");
        printf("\n");
    getchar();
}
Программа должна считать символы которые мы вводим, потом переписать все буквы на большие и написать последнюю букву здесь:
Код:
while (i == wcslen(ws)-2)
             {
                 printf("\nAz utolso betu:%ls", ws[i]);
                 break;
             }
Я уверен эту задачу можно легко решить по другому но я хочу использовать именно цикл while, но здесь я получаю ошибку когда программа доходит до этого места.Если я правильно понял цикл должен выйти после первого же круга ведь я поставил break, но он не кончается.


Буду очень благодарен если кто-то поможет!!!

Последний раз редактировалось Stilet; 11.06.2011 в 16:21.
Destinystar3422 вне форума Ответить с цитированием
Старый 10.06.2011, 21:27   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

внутри цикла while i не изменяется.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.06.2011, 22:02   #3
Destinystar3422
Новичок
Джуниор
 
Аватар для Destinystar3422
 
Регистрация: 10.06.2011
Сообщений: 10
По умолчанию

но ведь break значит что оно должно выйти с цикла нет?
Хорошо, как насчет такого решения?
код:
Код:
while (i == wcslen(ws)-2)
             {
                 printf("\nAz utolso betu:%ls", ws[i]);
                 ++i;
             }
но все-равно получается бесконечный цикл

Последний раз редактировалось Stilet; 11.06.2011 в 16:21.
Destinystar3422 вне форума Ответить с цитированием
Старый 11.06.2011, 10:52   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цикл тут вообще не при чем. ws[i] - это отдельный символ, а выводите как-будто строку
Код:
printf("\nAz utolso betu:%lc", ws[i]);
pu4koff вне форума Ответить с цитированием
Старый 11.06.2011, 11:55   #5
Destinystar3422
Новичок
Джуниор
 
Аватар для Destinystar3422
 
Регистрация: 10.06.2011
Сообщений: 10
По умолчанию

Ух ты спасибо огромное! никогда бы не догодался!
Destinystar3422 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечный цикл. Тошка Помощь студентам 6 12.03.2011 17:50
Бесконечный цикл. Kingdom_Reborn Помощь студентам 4 11.11.2010 00:18
WinSock и бесконечный цикл shinobi2 Работа с сетью в Delphi 3 10.02.2010 18:10
Таймаут и бесконечный цикл Terikon Работа с сетью в Delphi 4 30.03.2009 14:48
Бесконечный цикл Эдуард Общие вопросы C/C++ 4 03.04.2008 17:28