Это моя попытка ввода пользователем значения в массив. Затем, чтобы скрыть это количество напечатанных звездочек - PullRequest
0 голосов
/ 23 февраля 2020

Однако, когда я пытался присвоить пользовательское значение массиву звезд, чтобы затем напечатать звездочки для каждой 1000 человек, это было то, что я придумал, и, похоже, получаю ошибку при попытке назначить таким способом. Я всего лишь несколько недель занимаюсь программированием на C ++, работая в сфере промышленного обслуживания, и мой основной источник знаний по программированию - PL C. Есть ли какие-нибудь советы по присвоению значений массиву таким способом.

#include<iostream>
#include<string>

using namespace std;

int pop[5], stars[5];
string out[] = { 0, 0, 0, 0, 0 };

int main()
{
    cout << "\n\t\tPlease enter the population of 4 cities:";
    cout << "\n\t\tPopulation of city 1: "; cin >> pop[1];
    cout << "\n\t\tPopulation of city 2: "; cin >> pop[2];
    cout << "\n\t\tPopulation of city 3: "; cin >> pop[3];
    cout << "\n\t\tPopulation of city 4: "; cin >> pop[4];
    stars[1] = pop[1] / 1000, stars[2] = pop[2] / 1000, stars[3] = pop[3] / 1000, stars[4] = pop[4], out[1].assign(stars[1], "*"), out[2].assign(stars[2], "*"), out[3].assign(stars[3], "*"), out[4].assign(stars[4], "*");
    cout << "\n\n\tCity 1: " << out[1];
    cout << "\n\tCity 1: " << out[2];
    cout << "\n\tCity 1: " << out[3];
    cout << "\n\tCity 1: " << out[4];
    return 0;
}

1 Ответ

0 голосов
/ 23 февраля 2020

Прежде всего, разделите свои назначения точкой с запятой и используйте одну строку.

stars[1] = pop[1] / 1000;
stars[2] = pop[2] / 1000;
// ...

Вы должны использовать символы (char), а не c -строки (char*) как второй аргумент std::string::assign:

out[1].assign(stars[1], '*') // correct
out[1].assign(stars[1], "*") // wrong
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...