Śmieci podczas wypełniani tablicy
Ostatnio zmodyfikowano 2016-01-29 22:52
maszaczek Temat założony przez niniejszego użytkownika |
Śmieci podczas wypełniani tablicy » 2016-01-29 21:34:53 Mam taki oto kod: cout << "Podaj wielkosc tablicy: "; int wielkoscTablicy = 0; cin >> wielkoscTablicy; cout << endl;
char * tablica1 = new char[ wielkoscTablicy ]; cout << "Miejsca na wpis do tablicy: " << wielkoscTablicy << endl << endl;
cout << "Teraz wypelnij tablice!" << endl;
for( int i = 0; i <( wielkoscTablicy ); i++ ) { cin >> tablica1[ i ]; }
cout << tablica1 << endl; Wyrzuca mi te liczby jakie podam oraz śmieci z pamięci w postaci dziwnych znaków. Dodam że w CB działa bez zarzutu, a w VS 2015 wyrzuca mi śmieci. Jak temu zaradzić? Oto scr: http://www.tinypic.pl/kj8fr00j2y4b |
|
pekfos |
» 2016-01-29 22:17:35 Nie możesz tak wyświetlać takich danych. |
|
maszaczek Temat założony przez niniejszego użytkownika |
» 2016-01-29 22:25:45 A w jaki sposób mogę je wyświetlić? |
|
jankowalski25 |
» 2016-01-29 22:28:59 Na przykład po jednym znaku, czyli analogicznie do wczytywania. Śmieci są dlatego, że podczas wypisywania nie określasz ilości znaków. //edit: Albo możesz użyć funkcji write należącej do obiektu std::cout . |
|
mateczek |
» 2016-01-29 22:52:28 oczywiście liczby nie są liczbami tylko znakami pojedyńczymi !!! bo tablica jest typu char !!!! zakończ tablicę zerem i zwiększ rozmiar o jeden znak !!! #include <iostream> using namespace std; int main() { cout << "Podaj wielkosc tablicy: "; int wielkoscTablicy = 0; cin >> wielkoscTablicy; cout << endl; char * tablica1 = new char[ wielkoscTablicy + 1 ]; cout << "Miejsca na wpis do tablicy: " << wielkoscTablicy << endl << endl; cout << "Teraz wypelnij tablice!" << endl; for( int i = 0; i <( wielkoscTablicy ); i++ ) { cin >> tablica1[ i ]; } tablica1[ wielkoscTablicy ] = '\0'; cout << tablica1 << endl; delete[] tablica1; } |
|
« 1 » |