#include <iostream>
#include <random>
#include <string>
#include <chrono>
using namespace std;
string string_maker5000(int length)
{
unsigned seed = std::chrono::steady_clock::now().time_since_epoch().count();
default_random_engine e(seed);
string stringcheese;
for (int i = 1; i <= length; i++)
{
uniform_int_distribution<int> distr(0, 1);
int n = distr(e);
stringcheese = ": ";
stringcheese += n;
}
return stringcheese;
}
int main()
{
string yee = string_maker5000(5);
cout << yee << endl;
}
Всякий раз, когда я запускаю программу, вместо того, чтобы выводить 1 и 0, она выводит вопросительные знаки для 1, я думаю, и, кажется, выводит 0 в виде пробелов. Я не совсем уверен. Заставляет меня думать, что это какая-то проблема с utf или что-то в этом роде.
Целые числа 0
и 1
не совпадают с цифрами (символами) '0'
и '1'
. Попробуйте это вместо
stringcheese += n + '0';
Добавляя целое число к нулевой цифре, вы преобразуете целое число в требуемый символ.
1) Вы перезаписываете строку на каждой итерации. 2) Предпочитаю
std::bernoulli_distribution
вместоuniform_int_distribution<int>(0, 1)
.