Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ С++

Автор: kaa 2.6.2009, 14:55

у меня есть прога
#inculde <iostream>
using namespace std;
void main()
{
int A;
cout<<"Please,enter password"<<"\n";
cin>>A;
if(A==10)
{
cout<<"Bu YCpeshno 3ashli!"<<endl;
}
else
cout<<"Error\a\a"<<endl;
}
так вот ! эта прога считывает пароль только 1 символа !)
а как сделать чтоб какоенить слово было в пароле) mellow.gif

Автор: Pavlov Andrey 2.6.2009, 17:01

Что бы несколько цифр надо вместо переменной создать массив и в него через какой нибудь цикл заносить цифры.
Это если всегда один размер пароля. Если разный может лучше динамический массив.


А что бы слова надо массив с переменной char.

Автор: kaa 3.6.2009, 7:12

динамический массив.
char *a=new char[10];
так?

Автор: Pavlov Andrey 3.6.2009, 10:18

Цитата(kaa @ 3.6.2009, 11:12) *

динамический массив.
char *a=new char[10];
так?




Может и так. Но про динамический массив я наверно зря сказал.
Наверно лучше создать простой массив побольше (~100) и с помощью цикла задать
все ячейки массива равными например 0. Хотя и будет ограничение но я не думаю что нужен очень большой код...



#inculde <iostream>
using namespace std;
void main()
{
char A[100];\\массив А
char P[100];\\переменная с паролем
int g=0;
cout<<"Please,enter password"<<"\n";

cin>>A[0];
while(A[g]!='\n') \\код считывается до Enter(до нажатия кнопки перехода на новою строку)
{
g++
cin>>A;
}
A[g]=0;\\убирается Enter из введённого

\\А дольше надо сравнить эти два массива. Если они равны то... если нет то ...
}

Автор: kaa 4.6.2009, 16:14


эти 2 массива передать в функцию
и сравнивать
int strncmp(const char *s1, const char *s2, int maxlen);

???????


void pass(char *A,char *P)
{
int strncmp(const char *A, const char *P);
}
void main()
{
pass(char *A,char *P);
}

Автор: Pavlov Andrey 4.6.2009, 18:08

Как я понял, что тебе непонятно как сравнить эти два массива.

Ну это можно сделать передавая эти массивы много раз в другие функции,
но я бы сделал так:

int c;
for(c=0;c<100;c++)
{
if (A[c]=P[c]);
else {
break;
\\и сдесь расспечатать Error
}
}

Если я правильно понял.

Автор: kaa 9.6.2009, 10:04

if (A[c]=P[c]);
разве так можно делать?

Автор: Pavlov Andrey 9.6.2009, 12:04

Цитата(kaa @ 9.6.2009, 14:04) *

if (A[c]=P[c]);
разве так можно делать?

Ааа
Забыл поставить ещё одно равно if (A[c]==P[c]);
А что нельзя????
Попробуй узнаешь...

Автор: kaa 9.6.2009, 17:34

о ТЕРЬ РАБОТАЕТ СПС БОЛЬШОЕ) biggrin.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)