1

Тема: Як виконати перевірку на введення лише букв

В мене видає помилку:
Помилка не існує підходящої функції перетворення з “std::string” в “int”
string local;
    int data;
    int count;
    double intensity;
    double speed;
    int temp;
    string direction;
    int afternoon;
    int night;
} s[100];
int add(int n)
{
    HANDLE hOUTPUT = GetStdHandle(STD_OUTPUT_HANDLE);

    SetConsoleTextAttribute(hOUTPUT, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    char ch;
   
    ch = '\0';
    do {
        while (true)
        {
            string i = 0;
            cout << "місцевість': ";
            cin >> s[n].local;
            if (!isalpha(s[n].local))
            {
                cout << "Не вірно!Введіть ще раз\n";
            }
        }

2

Re: Як виконати перевірку на введення лише букв

1. Підключать українську локаль, інакше isalpha працюватиме лише з латиною.
2. islapha перевіряє лише один символ. Робіть цикл.

3 Востаннє редагувалося kerimov_e (10.11.2018 23:54:44)

Re: Як виконати перевірку на введення лише букв

koala написав:

2. islapha перевіряє лише один символ. Робіть цикл.

по поводу циклу я його зробив, але помилок стало більше:

do {
        while (true)
        {
            cout << "mestnost': ";
            cin >> s[n].local;
            for (int i = 0; i < s[n].local.length(); i++)
            {
                if (!s[i].local >= 'A' &&s[i].local <= 'Z' || s[i].local >= 'a' && s[i].local <= 'z')
                {
                    cout << "ne verno! povtorite vvod\n";
                }
                else break;
            }
            
        }

помилки:
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1943&amp;download=0

Post's attachments

Снимок.PNG 26.15 kb, 68 downloads since 2018-11-10 

4 Востаннє редагувалося koala (11.11.2018 08:30:46)

Re: Як виконати перевірку на введення лише букв

Розставити дужки.

Подякували: kerimov_e1

5 Востаннє редагувалося kerimov_e (11.11.2018 00:18:50)

Re: Як виконати перевірку на введення лише букв

koala написав:

Розстав6 дужки.

Помилка вирішена, але теперь дублюється кількість невірно уведенних символів, тобто якщо користувач ввів 5 цифр, то в нього 5 раз вилізе помилка.

do {
        
            cout << "mischevist': ";
            cin >> s[n].local;
            for (int i = 0; i < s[n].local.length(); i++)
            {
                if (!(s[n].local[i]>= 'A' &&s[n].local[i]<= 'Z' || s[n].local[i]>= 'a' && s[n].local[i]<= 'z'))
                {
                    cout << "ne virno! povtorit'te vvod\n";
                }
            }

Як вирішити цю проблему, я не знаю

6

Re: Як виконати перевірку на введення лише букв

Проблема вирішена! Дякую!