Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Код символа Enter 
V
    Опции темы
alver
Дата 11.4.2007, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.10.2006
Где: Питер

Репутация: нет
Всего: нет



Здрасте) помогите плиз в решении очень маленького вопроса.
Щас попытаюсь объяснить в чём дело. Значит так: пытаюсь я реализовать с виду простую задачку, чтобы при вводе отображалось бы не то, что вводишь, а *. Ну чтобы никто не догадался, что именно вводишь. Долго парился, но кое что придумал, вот рабочий кусок:
Код

#include <iostream>
using namespace std;

void zvlog(int wert)
{
    int i;
    cout << "Enter log: ";
    for(i=0;i<wert;i++)
        cout<<"*";
};

int main()
{
    int ch=1;
    int i=0;
    string log;

    do
    {
        if(ch<=1)
        cout << "Enter log: ";
        log=getch();
        system("cls");
        zvlog(ch);
        ch++;
        i=log.length();
    }
    while(log[i]!=13);
}    

Дык вот проблема в том, что когда я нажимаю enter цикл должен завершаться, но он не завершается, может я запутался в ASCII кодах, или ещё чего то. Помогите плиз. Ваще мне кажеться, что и сам алгоритм у мя слишком громоздкий, может кто попроще знает?

PM MAIL GTalk Jabber   Вверх
ama_kid
Дата 11.4.2007, 23:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 2
Всего: 95



Конкретно в твоем случае - достаточно просто заменить i=log.length(); на i=log.length()-1;
Но как тебе такой вариант?:
Код

#include <conio.h>

using namespace std;

int main()
{
    char ch;
    int i = 0;
    char *log = new char[50];          // Ограничим 50-ю символами
    for(int j=0;j<50;j++) *(log+j)=0; // Очистка памяти...
    cout << "Enter log: ";
    while((ch = getch())!=13)
    {
        cout<<'*';
        *(log+i) = ch;
        i++;  
    }
    cout<<endl<<log;
    getch();
    return 0;
}




--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
apook
Дата 12.4.2007, 00:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Код

#include<iostream.h>
#include<conio.h>

#define size 100

using namespace std;

void main()
{
int i, j, ch;
char pass[ size ];
cout << "Enter password: ";
for( i=0, j=0; (((ch=getch())!=13) ? pass[ i ]=ch : j=size) && j<size; ++i, ++j )
    cout << '*';
pass[ i ]='\0';
cout << endl << pass << endl;
return;
}


Это сообщение отредактировал(а) apook - 12.4.2007, 00:41


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
alver
Дата 12.4.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.10.2006
Где: Питер

Репутация: нет
Всего: нет



Пасибо всем большое за оперативную помощь. smile 
PM MAIL GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.