Хорошо, поэтому я смотрел, хотя Google и на форумах часами, и не может понять, как решить эту проблему.Чтение цифр из int и подсчет их
Мне нужно написать программу, которая сначала определяет, является ли введенный пользователем номер базовым 5 (другими словами, число, которое содержит только 0, 1, 2, 3 и 4). Затем я должен подсчитать, сколько 0s, 1s, 2s и т. Д. Указано в номере и отобразить его пользователю.
Я видел, как люди говорили, что я должен преобразовать int
в string
, а затем используя cin.get()
. Я заметил, что не могу использовать cin.get()
на string
, это должно быть char
.
Я могу использовать только петлю while
для этого задания, а не while... do
.
Любая помощь приветствуется!
Вот то, что я до сих пор, очевидно, со всеми своими ошибками в нем:
//----------------------------------------------
// Assignment 3
// Question 1
// File name: q1.cpp
// Written by: Shawn Rousseau (ID: 7518455)
// For COMP 218 Section EC/Winter 2015
// Concordia University, Montreal, QC
//-----------------------------------------------
// The purpose of this program is to check if the
// number entered by the user is a base of 5
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
// Declaring variables
int number;
int zeros;
int ones;
int twos;
int threes;
int fours;
bool base5;
// Get data and calculate
cin >> number;
string numberString = to_string(number);
// Determine if the number is a base 5 number
while (cin.get(numberString) == 0 || cin.get(numberString) == 1 ||
cin.get(numberString) == 2 || cin.get(numberString) == 3 ||
cin.get(numberString) == 4)
base5 = true;
// Determine the number of each digits
zeros = 0;
ones = 0;
twos = 0;
threes = 0;
fours = 0;
return 0;
}
Кстати, как вы можете видеть, я новичок. Это C++ –