2014-12-06 2 views
-3

Мне нужно создать структуру и запустить ее в цикле, что не является проблемой, но она должна запускать определенное количество раз, когда пользователь выбирает, как это сделать?Как вы инициализируете размер и длину структуры

Ex:

struct employee 
{ 
Name 
Department 
Salary 
}; 

Если я хочу, чтобы запустить его в десять раз я могу просто использовать

for (int x=0, x<10, x++) 
.... 

Но что, если я должен спросить пользователя для номера, а не держать его в 10 ?


Также любая идея о том, как с ошибкой проверять имя, используя getline для неправильного ввода (числа).

Спасибо, тонны парней. Я новичок в C++ и стараюсь его изучить, поэтому, если вы можете дать мне примеры с объяснениями, это было бы очень оценено.

Спасибо за ваше время.

Спасибо за ввод. Я вижу, как теперь можно проверять имя, но я прошу прощения за мой непонятный вопрос.

Когда я объявляю структуру в основном, она спрашивает, сколько информации я намереваюсь вставить в свою структуру. ex: сотрудник e [10];

Я не знаю, как спросить пользователя перед этим и сделать его ответ как const int. (10 в этом случае является const int).

ответ

0

Предположим, что переменная n сохранит введенное значение пользователя.

int n; 

Тогда цикл будет выглядеть

for (int x = 0; x < n; x++) 
{ 
    // some code 
} 

Значение в п можно ввести с помощью оператора >>.

std::cin >> n; 

Чтобы проверить, что имя содержит только буквы, которые вы можете применить алгоритм std::all_of и стандартные функции C isalpha

Например

#include <algorithm> 
#include <cctype> 

//... 

std::string name; 

std::getline(std::cin, name); 

if (!name.empty() && std::all_of(name.begin(), name.end(), 
            [](char c) { return std::isalpha(c); })) 
{ 
    std::cout << name << " is valid name" << std::endl; 
}! 
Смежные вопросы