Получение входных данных для массива структур - PullRequest
0 голосов
/ 09 марта 2019

Я хотел бы получить пары имен и оценок для массива структур.Одно поле в структуре - это c-строка, и я не уверен, как хранить входные данные в виде строки в этом поле.Когда я запускаю следующий код, поле «Score» сохраняется правильно, но после того, как я ввожу строку для Scores [counter] .name, окно консоли больше не принимает ввод.курсор просто мигает, ничего не происходит.Может кто-нибудь сказать мне, что происходит?Спасибо!

struct highscore
{
    int score;
    char name[charSize];
};

void initializeData(highscore scores[], int size)
{
    for (int counter = 0; counter < size; counter++)
    {
        cout << "Enter the name for score #" << (counter + 1) << ": ";
        cin >> scores[counter].score;
        cout << "Enter the score for score #" << (counter + 1) << ": ";
        do {
            cin >> scores[counter].name;
        } while (scores[counter].name != '\0');
    }
}

1 Ответ

0 голосов
/ 09 марта 2019

Самый простой способ обрабатывать строки (длинную последовательность символов) или даже строки, в которых есть пробелы, просто использовать следующую библиотеку в C ++.

#include <bits/stdc++.h>

Тогда просто объявите строковую переменную.

struct highscore
{
    int score;
    String name;
};

Тогда в вашем цикле,

for (int counter = 0; counter < size; counter++)
    {
        cout << "Enter the name for score #" << (counter + 1) << ": ";
        cin >> scores[counter].name;
        cout << "Enter the score for score #" << (counter + 1) << ": ";
        cin >> scores[counter].score;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...