Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Śmieci podczas wypełniani tablicy

Ostatnio zmodyfikowano 2016-01-29 22:52
Autor Wiadomość
maszaczek
Temat założony przez niniejszego użytkownika
Śmieci podczas wypełniani tablicy
» 2016-01-29 21:34:53
Mam taki oto kod:
   
C/C++
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
P-144151
pekfos
» 2016-01-29 22:17:35
Nie możesz tak wyświetlać takich danych.
P-144152
maszaczek
Temat założony przez niniejszego użytkownika
» 2016-01-29 22:25:45
A w jaki sposób mogę je wyświetlić?
P-144153
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 » standard C++ » basic_ostreamwrite należącej do obiektu
std::cout
.
P-144154
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 !!!
C/C++
#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;
}
P-144157
« 1 »
  Strona 1 z 1