У меня проблема с функцией strcmp в C++, компилятор говорит «ошибка чтения символов строки», и я вообще использовал строку. Если бы вы могли посмотреть, я бы был более чем полезенstrncmp function on C++
/// это где используется функция, данные класса MailAcount //
cout << "please enter user name: " << endl;
char input_user[20];
cin >> input_user;
cout << "please enter password: " << endl;
char input_password[20];
cin >> input_password;
if (!strncmp(input_user, data.GetUser(), 20) ||
!strncmp(input_password, data.GetPassword(), 20))
cout << "ERROR" << endl;
else
{
cout << "Access confirm" << endl;
}
// это заголовок MailAcount //
class MailAcount
{
private:
char* _email;
char* _password;
public:
MailAcount(char* email,char* password);
MailAcount();
char* GetUser();
char* GetPassword();
~MailAcount();
};
// это каст из MailAcount //
#include "MailAcount.h"
#include <iostream>
using namespace std;
MailAcount::MailAcount(char *email,char *password)
{
_email = email;
_password = password;
}
MailAcount::MailAcount()
{
}
char* MailAcount::GetUser()
{
return _email;
}
char* MailAcount::GetPassword()
{
return _password;
}
MailAcount::~MailAcount()
{
}
'input_password' длиной 10 символов, включая нулевой терминатор, но вы сравниваете 20 символов ...? –
opss я играл с кодом, чтобы попробовать и посмотреть, как его решить .. я изменил его .. спасибо :) – user3488862
Вы могли бы избежать любых странных проблем, используя 'std :: string' вместо того, чтобы возиться с указателями. –