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

problemy z wyświetlaniem tekstu z tablic

Ostatnio zmodyfikowano 2010-12-29 16:51
Autor Wiadomość
Owex
Temat założony przez niniejszego użytkownika
problemy z wyświetlaniem tekstu z tablic
» 2010-12-29 16:21:44
Witam. Miałem napisać coś w rodzaju programu księgowego. Treść zadania jest opisana tutaj: http://kursy.ddt.pl/?LessonId=10. Zadanie 8.5 ćwiczenie 3 (na samym dole). Zrobiłem wszystko ale program zamiast wyświetlać tabeli, pokazuje niezrozumiałe znaki. Mam kod:
C/C++
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    //deklaracja zmiennych i tablicy
    //--------------------------------------------------------------------------
    const int KWARTALY = 5;
    const int LATA = 4;
   
   
   
    const char tab1[ KWARTALY ][ LATA ] =
    {
        { ' ', 1999, ' ', 2000 },
        { 1, 2075000, ' ', 532500 },
        { 2, 2205000, ' ', 479250 },
        { 3, 2150000, ' ', 1479250 },
        { 4, 1065000, ' ', 1229250 },
    };
   
   
    //--------------------------------------------------------------------------
    cout << "                             Firma DDT\n"
    << "                        *Program ksiegowy*\n";
   
    for( int X = 0; X < KWARTALY; X++ )
    {
        cout << tab1[ X ] << endl;
    }
   
   
   
    cin.get();
    getchar();
    return 0;
}

Co jest źle?
P-25871
ison
» 2010-12-29 16:29:49
C/C++
const char tab1[ KWARTALY ][ LATA ] =
{
    { ' ', 1999, ' ', 2000 },
    { 1, 2075000, ' ', 532500 },
    { 2, 2205000, ' ', 479250 },
    { 3, 2150000, ' ', 1479250 },
    { 4, 1065000, ' ', 1229250 },
};
ciągi znaków zapisuje się w cudzysłowach
w zmiennej char możesz pomieścić liczby od 0 do 255 a ty próbujesz pod niego przypisać 2205000
(jeśli zapiszesz liczbę bez cudzysłowu to jest ona traktowana jako liczba a nie jako ciąg znaków)
P-25874
szyx_yankez
» 2010-12-29 16:38:18
C/C++
const int tab1[ KWARTALY ][ LATA ] =
{
    { ' ', 1999, ' ', 2000 },
    { 1, 2075000, ' ', 532500 },
    { 2, 2205000, ' ', 479250 },
    { 3, 2150000, ' ', 1479250 },
    { 4, 1065000, ' ', 1229250 },
};

for( int X = 0; X < KWARTALY; X++ )
{
    for( int Y = 0; Y < LATA; Y++ )
         cout << tab1[ X ][ Y ] << " ";
   
    cout << endl;
}
P-25879
Owex
Temat założony przez niniejszego użytkownika
» 2010-12-29 16:39:08
Zmieniłem na
C/C++
const char tab1[ KWARTALY ][ LATA ] =
{
    { ' ', "1999", ' ', "2000" },
    { 1, "2075000", ' ', "532500" },
    { 2, "2205000", ' ', "479250" },
    { 3, "2150000", ' ', "1479250" },
    { 4, "1065000", ' ', "1229250" },
};

i wychodzi mi błąd przy ostatnich znakach ( }; ). Pisze:"invalid conversion from 'const char*' to 'char' . O co chodzi?
P-25880
szyx_yankez
» 2010-12-29 16:45:26
Oto, że nie można dokonać konwersji z typu 'const char*' na 'char'.
C/C++
const char * tab1[ KWARTALY ][ LATA ] =
{
    { "", "1999", "", "2000" },
    { "1", "2075000", "", "532500" },
    { "2", "2205000", "", "479250" },
    { "3", "2150000", "", "1479250" },
    { "4", "1065000", "", "1229250" },
};
P-25883
ison
» 2010-12-29 16:51:03
@Owex policz ile w Twojej tablicy deklarujesz wymiarów a ile potem przypisujesz?
1 wymiar: kwartały
2 wymiar: lata
3 wymiar: długość każdego stringa (czyli każdego ciągu znaków)

char to jeden znak a nie ciąg znaków

możesz to rozwiązać tak jak już Ci powiedział szyx_yankez albo jeśli będzie to dla Ciebie bardziej czytelne:
C/C++
const int DLUGOSC = 8;
const char tab1[ KWARTALY ][ LATA ][ DLUGOSC ] =
{
    { "", "1999", "", "2000" },
    { "1", "2075000", "", "532500" },
    { "2", "2205000", "", "479250" },
    { "3", "2150000", "", "1479250" },
    { "4", "1065000", "", "1229250" },
};
P-25885
« 1 »
  Strona 1 z 1