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

Ошибка в программе - C++

Восстановить пароль Регистрация
 
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 17:03     Ошибка в программе #1
Я сейчас читаю книгу Липпмана "Язык программирования С++", так вот, там в конце 1 главы есть упражнение.Цитирую:
"Напишите программу, которая запрашивает имя пользователя.Считайте ответ.Проверьте, чтоб введенная пользователем строка была не меньше двух символов.Если имя прошло проверку, выдайте пользователю ответ." Там ещё есть два предложения, но это уже не важно.
Важно то, то я написал вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Enter you name: ";
    string name;
    cin >> name;
    char name1[2];
    if (name > name1) {
        cout << "Well done, " << name << "!" << endl; 
        }
    else {
    if (name < name1) { 
    cout << "Bad name!Name must be at least 2 characters" << endl;
}
}
    system("pause");
    return 0;
}
И теперь думаю, в чём проблема...Ошибок при компиляции не было, но когда я ввожу любое имя, любой длины, то мне выводит:
"Ban name!Name must be at least 2 characters".
Так вот, как думаете, в чем ошибка? Я сейчас и сам сижу думаю, может сам пойму.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2013, 17:03     Ошибка в программе
Посмотрите здесь:

ошибка в программе C++
ошибка в программе C++
C++ Ошибка в программе
C++ Ошибка в программе
Ошибка в программе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
15.07.2013, 17:09     Ошибка в программе #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdlib>
#include <iostream>
#include<string>
 
using namespace std;
 
int main()
{
    cout << "Enter you name: ";
    string name;
    cin>>name;
    
    if (name.size()>2) {
        cout << "Well done, " << name << "!" << endl; 
        }
    else 
        if (name.size()<2) { 
    cout << "Bad name!Name must be at least 2 characters" << endl;
}
 
    system("pause");
    return 0;
}
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
15.07.2013, 17:09     Ошибка в программе #3
Цитата Сообщение от Даниил1991 Посмотреть сообщение
char name1[2];
Непонятно зачем. Просто, если используете std::string, напишите
C++
1
2
3
4
string name;
cin >> name;
if (name.length() < 2) cout << "Bad" << endl;
else cout << "OK" << endl;
Перед этим #include <string> напишите
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 17:13  [ТС]     Ошибка в программе #4
Спасибо большое, Валентина, ваш вариант подошел)Просто я не уделил внимание полностью 1 главе, и про size не прочитал
Хмм...Вот я обратил внимание, что я не подключил библиотеку string, но тем не менее компилятор не ругается, и всё нормально работает

Добавлено через 37 секунд
Цитата Сообщение от Hrobak Посмотреть сообщение
Непонятно зачем. Просто, если используете std::string, напишите
C++
1
2
3
4
string name;
cin >> name;
if (name.length() < 2) cout << "Bad" << endl;
else cout << "OK" << endl;
Перед этим #include <string> напишите
Ваш вариант тоже хороший, но я его не испытывал, просто подошел 2 пост
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
15.07.2013, 17:17     Ошибка в программе #5
Даниил1991, методы size() и length() равнозначны, по сути не имеет разницы, какой использовать.
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 17:18  [ТС]     Ошибка в программе #6
Цитата Сообщение от Hrobak Посмотреть сообщение
Даниил1991, методы size() и length() равнозначны, по сути не имеет разницы, какой использовать.
Да, я понимаю)Это чисто из-за моей лени, слово size легче запомнить, и легче написать))
Yandex
Объявления
15.07.2013, 17:18     Ошибка в программе
Ответ Создать тему
Опции темы

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