Budaa
(Pbuderaski)
#1
Witem, mam problem z konwersją danych z string do int w tablicy.
Oto kod:
int main(){
string oct_str = "11";
int wynik = 0;
int* oct_int = new int[oct_str.size()-1];
for(int i=0; i <= oct_str.size()-1; i++){
istringstream iss(oct_str[i]);
iss>>oct_int[i];
wynik += oct_int[i]*potega(8,i);
}
cout<
return 0;
}
Debugowałem i zauważyłem, że w tym miejscu:
iss>>oct_int[i];
Nic nie jest wpisywane do tablicy.
Czy ktoś może wie w czym rzecz?
Pozdrawiam.
nr47
(Sawyer47)
#2
Budaa
(Pbuderaski)
#3
No własnie robiłem tak:
oct_int = atoi(oct_str[i].c_str());
Tylko niestety wyskakiwał błąd, że nie mogę wstawić przed kropką .
ucho3000
(Xwars)
#4
Skoro to tylko jedna cyfra…
oct_int = oct_str[i] -'0'
nie możesz wywołać c_str() na oct_str_, bo o ile oct_str to string to oct_str_ to już char;
marian85
(Marianmularz85)
#5
Najłatwiej zapisać do pliku i odczytać jako int.
Ryan
(Ryan)
#6
Świetny pomysł. W ogóle najlepiej zatrudnić kogoś, kto będzie czytał stringa z ekranu i wpisywał cyfrę z klawiatury.
@ucho3000: Autor chyba próbował odczytać znak po znaku ciąg by w efekcie uzyskać liczbę. To czego szuka to prawdopodobnie atoi(oct_str.c_str());
_alex
([alex])
#7
stringstream nadaje się do wczytywania danych ze stringu, np tak:
int main()