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

написать прогу банкомат - C++

Восстановить пароль Регистрация
 
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
27.11.2013, 18:57     написать прогу банкомат #1
Вот надо написать прогу банкомат и столкнулся с проблемой
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
bool ATM::login()
{
    cout<<"Username"<<endl;
    cin>>a.username;
    cout<<"Password"<<endl;
    cin>>a.password;    
    if((a.username=="alisher") && (a.password==123456))
        return true;
    else 
        return false;
}
и в главной пишу так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main ()
{
    ATM atm;
    if(atm.login()==true)
    {
      atm.printMune();
    }
    else
    {
       cout<<"wrong username";
    }
    
    int c;
    cin>>c;
    atm.checkOperation(c);
    return 0;
}
почему у меня не правильный логин пишет помогите плс
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 18:57     написать прогу банкомат
Посмотрите здесь:

Помогите написать прогу. C++
C++ Не могу написать прогу
написать прогу по вычислению... C++
Написать прогу C++
Помогите написать прогу в С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EVP
314 / 236 / 41
Регистрация: 14.12.2010
Сообщений: 457
27.11.2013, 19:06     написать прогу банкомат #2
Цитата Сообщение от AlisherIITU Посмотреть сообщение
C++
1
    cin>>a.username;
почему у меня не правильный логин пишет помогите плс
Вероятно, тип a.username объявлен не как std::string.

Соответственно объявить его как std::string, ну и перед ATM::login() поместить код:
C++
1
2
3
4
inline void operator>>(istream& _is, string& _value)
{
    getline(_is, _value);
}
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
27.11.2013, 19:21  [ТС]     написать прогу банкомат #3
Цитата Сообщение от EVP Посмотреть сообщение
Вероятно, тип a.username объявлен не как std::string.

Соответственно объявить его как std::string, ну и перед ATM::login() поместить код:
C++
1
2
3
4
inline void operator>>(istream& _is, string& _value)
{
    getline(_is, _value);
}
спасибо с этим больше нет проблем, появилась новая проблема
C++
1
2
3
4
5
6
7
8
void ATM::changeUsername()
{
    char newusername[10];
    cout<<" Enter new Username:"<<endl;
    cin>>newusername;
    strcpy(newusername, a.username);
    cout<<"Your username has been successfully changed"<<endl;
}
я не могу теперь использовать strcpy a.username горит красным
так пишет
strcpy: невозможно преобразовать параметр 2 из "std::string" в "const char *"
EVP
314 / 236 / 41
Регистрация: 14.12.2010
Сообщений: 457
27.11.2013, 19:47     написать прогу банкомат #4
Цитата Сообщение от AlisherIITU Посмотреть сообщение
спасибо с этим больше нет проблем, появилась новая проблема
C++
1
char newusername[10];
я не могу теперь использовать strcpy a.username горит красным
Не используй голые массивы без необходимости. Используй вместо них std::vector<char>.
Для строк используй std::string.

C++
1
2
3
4
5
6
7
8
9
void ATM::changeUsername()
{
    // char newusername[10]; // <-- так опасно == потенциальные грабли
    string newusername;
    cout<<" Enter new Username:"<<endl;
    cin>>newusername;
    a.username = newusername;  //  вместо опасного: strcpy(newusername, a.username);
    cout<<"Your username has been successfully changed"<<endl;
}
Соответственно, определение inline void operator>>(istream& _is, string& _value) должно быть перед ATM::changeUsername().
Yandex
Объявления
27.11.2013, 19:47     написать прогу банкомат
Ответ Создать тему
Опции темы

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