Когда произошла ошибка xutility, что я должен сделать - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу сделать программу, которая подсчитывает номер каждой цифры какого-то числа. Число кратно трем целым числам, вводимым с консоли. Я конвертирую число в строку для подсчета и использую функцию подсчета.

#include<iostream>
#include<algorithm>
#include<string>
#include<stdlib.h>
using namespace std;
int main() {
    int a;
    int b;
    int c;
    cin >> a;
    cin >> b;
    cin >> c;
    int multi = a * b * c;
    string str_multi = to_string(multi);
    for (int a = 0; a <= 9;a++) {
        char* tmp;
        _itoa_s(a, tmp,2, 10);
        cout << count(str_multi.begin(), str_multi.end(), tmp) << endl;
    }
}

И я получаю код ошибки C2446. Сообщение об ошибке: «==»: не преобразовано из «const_TY» в «int» » Эта ошибка была в файле xutility. Я думаю, что проблема заключается в функции счета или _iota_s функция, но я не знаю, как решить эту проблему.

1 Ответ

0 голосов
/ 16 апреля 2019

Последний параметр std::count должен быть char в этом случае (или быть преобразованным в символ), поэтому просто измените ваш цикл на:

for (int a = '0'; a <= '9'; a++) {
   cout << count(str_multi.begin(), str_multi.end(), a) << endl;
}

Демонстрация в реальном времени

...