Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Несколько вопросов по C++
cout << "This is your first programm on C++!\r\n";
char letter;
cout << "Do you want begin? (y/n): ";
cin >> letter;
if(letter == 'y'){
char username[10];
cout << "Enter user name: ";
cin >> username;
cout << "User:" << username << "\r\n";
char pass[10];
cout << "Enter your password: ";
cin >> pass;
//cout << strlen(pass);
// if(strcmp(pass,authpass) > 0){
if(pass == authpass){
cout << "You have successfully authenticates!";
}else{
cout << "You have error!";
}
}else{
cout << "bay"<< endl;
}
}
Как вообще сравнить 2 строки?
strcmp() - компилятор говорит 'strcmp' was not declared in this scope
Если сравнивать строки == , то в любом случаи получаю You have error!
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
OrmaJever
Отправлено: 01 Февраля, 2012 - 22:58:38
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
snikers987 пишет:
если так указатьТак это как?
так это как?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
snikers987
Отправлено: 01 Февраля, 2012 - 23:00:07
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
OrmaJever пишет:
snikers987 пишет:
если так указатьТак это как?
так это как?
char* pass; ?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
OrmaJever
Отправлено: 01 Февраля, 2012 - 23:03:38
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
snikers987 пишет:
char* pass; ?
Обьявлен указатель, но он не на что не указывает поэтому записывать некуда.
А когда обьвляешь char pass[10] то обьявляется масив размером 10 char'ов, в которые можно затем что-то записать. (Добавление)
//обязательно когда указательно больше не нужен, нужно освободить память.
delete[] str;
(Добавление)
Си это не php, и чем раньше ты это поёмешь тем легче будет учить. Я когда начинал читать книги по Си я понял что на php может написать даже обезьяна (не хочу не кого обидеть). В Си нужно за всем следить, не хватит одного байта для записи и программа вылетит без обьяснений, забыл удалить указатель на динамически выделеную память, она закончится и программа тоже вылетит. Здесь нужно быть очень внимательным.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
snikers987
Отправлено: 01 Февраля, 2012 - 23:34:47
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Ну то что Cи язык строгой типизации это я уяснил, но после php весьма сложно ко всему привыкнуть, наоборот было бы на много легче..
Буду читать, ну и тут спрашивать если что.
А почему скомпилированная программа (из первого поста) весит почти 4 метра и требует еще несколько dll-ок?
И в qt программа работает, а после компиляции после ввода пароля просто вылетает?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
OrmaJever
Отправлено: 01 Февраля, 2012 - 23:48:37
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
snikers987 пишет:
наоборот было бы на много легче..
наоборот учить было бы нечего, в php почти весь синтаксис взят из Си, да я даже больше скажу, он написан на Си.
snikers987 пишет:
А почему скомпилированная программа (из первого поста) весит почти 4 метра и требует еще несколько dll-ок?
Ну смотря какие либы она требует. Ну если там только один инклуд iostream то должна весить ~400 кб, а откуда 4мб я незнаю, может компилятор что-то своё добавил.
snikers987 пишет:
а после компиляции после ввода пароля просто вылетает?
Ну вот это про то что я говорил в преведущем посте.
1) пароль должен быть не больше 9 символов
2) Эту строку
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
snikers987, могу предположиь что cin записывает и нулевой символ в конец строки (тоесть y и \0), а в один байт 2 символа не влезут. Вобщем нужно letter определить как
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.