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

Tablica dynamiczna typu Char - wprowadzanie wartości

Ostatnio zmodyfikowano 2016-03-01 19:40
Autor Wiadomość
Carabella
Temat założony przez niniejszego użytkownika
Tablica dynamiczna typu Char - wprowadzanie wartości
» 2016-03-01 18:58:33
Witam, zmagam się z dwoma problemami, a mianowicie:
1. Chciałbym się dowiedzieć dlaczego program nie pozwala na wprowadzenie wartości do tablicy:

C/C++
#include <iostream>

using namespace std;

int main()
{
    int i, k, N, wiersz = 30;
    cin >> N;
    char ** TEKST = new char *[ wiersz ];
    for( i = 0; i < wiersz; i++ )
    {
        TEKST[ i ] = new char[ N ];
    }
    cin.getline( * TEKST, wiersz * N );
   
   
    for( i = 0; i < wiersz; i++ )
    {
        delete[] TEKST[ i ];
    }
    delete[] TEKST;
    return 0;
}

2. Chciałbym się dowiedzieć w czym jest błąd podczas zamiany Stringa na tablicę Char:
C/C++
#include <iostream>
#include <string.h>

using namespace std;

int main()
{
    int i, k, N, wiersz = 30;
    string A = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
   
    cin >> N;
    char ** TEKST = new char *[ wiersz ];
    for( i = 0; i < wiersz; i++ )
    {
        TEKST[ i ] = new char[ N ];
    }
    strcpy( * TEKST, A.c_str() );
   
   
    for( i = 0; i < wiersz; i++ )
    {
        delete[] TEKST[ i ];
    }
    delete[] TEKST;
    return 0;
}
P-145460
mateczek
» 2016-03-01 19:40:40
przepisanie stringa do tablicy char to prościej
C/C++
#include <iostream>
#include <string.h>

using namespace std;

int main()
{
    string A = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
    char * TEKST = new char[ A.size() ];
    strcpy( TEKST, A.c_str() );
    cout << TEKST << endl;
}

a wczytanie linijki do tablicy
C/C++
#include <iostream>
using namespace std;

int main()
{
    char tablica[ 30 ];
    cin.getline( tablica, 30 );
    cout << tablica << endl;
}

Ogólnie to co robisz to nie tablica char tylko tablica tablic (tablica napisów). Następnie do tablicy tablic kopiujesz napis?? Jeśli już to można tak. Ale nie wiem co chciałeś osiągnąć

C/C++
#include <iostream>
#include <string.h>

using namespace std;

int main()
{
    wiersz = 30;
    string A = "Lorem ipsum dolor";
    char ** TEKST = new char *[ wiersz ];
   
    for( int i = 0; i < wiersz; i++ )
    {
        TEKST[ i ] = new char[ 100 ];
        strcpy( TEKST[ i ], A.c_str() );
    }
    //wyswietlenie tablicy napisów
    for( int i = 0; i < wiersz; i++ )
    {
        cout << TEKST[ i ] << endl;
    }
   
    for( int i = 0; i < wiersz; i++ )
    {
        delete[] TEKST[ i ];
    }
    delete[] TEKST;
    return 0;
}
P-145464
« 1 »
  Strona 1 z 1