Я создал функцию, которая преобразует число в его эквивалент в данной базе и печатает его в строку. Это выглядит безупречно, но дает абсурдные результаты. Приведенный ниже код должен перевести 100 на базовую 9 и дать «121».Интересная ошибка в указателе строки
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void doldur(string *s,int u,int base){
*s="";
while(u!=0){
*s=""+u%base+*s;
u/=base;
}
return;
}
int main() {
ofstream fout ("dualpal.out");
ifstream fin ("dualpal.in");
int i;
string hey;
doldur(&hey,100,9);
cout<<hey;
cin>>i;
return 0;
}
Но смешно, он печатает dualpal.outualpal.outdualpal.out. (Также дает другие интересные результаты для различных баз)
Где недостаток?
'' '' не типа 'std :: string'. – chris
Почему вы объявляете 'fout' и' fin', если вы никогда не используете их? – jwodder
В частности, это важно в этой строке: '* s =" "+ u% base + * s;' – wjl