Struktura, problem s vytisknutim – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Struktura, problem s vytisknutim – C / C++ – Fórum – Programujte.comStruktura, problem s vytisknutim – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jakub
~ Anonymní uživatel
865 příspěvků
6. 12. 2014   #1
-
0
-

Hello world, mohl by mi prosím někdo poradit, jak vyřešit tento problém s vytisknutím. 

Na tomto příkladu jsem chtěl vyzkoušet uložit osoby do pole a toto pole pak předávat dalším funkcím, ale nevím zda to takhle můžu udělat :) 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void vytiskni_osoby();
typedef char neco[20];
typedef struct {short den, mesic, rok;} Datum;
typedef struct KAMOS {neco jmeno, prijmeni,prez; Datum narozen;} kamos;

int main(){

   kamos prvni = {"Pavel", "Maly","prcek",{1,1,1980}};
   kamos druhy = {"Petr","Velky","obr",{2,2,1953}};
   kamos treti = {"Tomas", "Stredni","neco",{3,3,1894}};

   kamos s[20]={prvni,druhy,treti};

    int i;
    for (i=0; i<3; i++){
    vytiskni_osoby(s[i]);
    }
}
void vytiskni_osoby(kamos s[]){
    int i;
    for (i=0; i< 3; i++){
    printf("%s %s alias %s \n",s[i].jmeno,s[i]prijmeni,s[i].prezdivka);
    }

}

 děkuji za odpověď 

Nahlásit jako SPAM
IP: 93.93.33.–
Reklama
Reklama
ingiraxo+15
Grafoman
6. 12. 2014   #2
-
0
-

#1 Jakub
ti to nebude fungovat... se podívej pořádně na metodu vytiskni_osoby(..) v deklaraci máš jiné parametry než definici

další věc je, že názvy proměnných jsou taky jiný a hlavně ti tam vstupuje jiný parametr než má

a tohle mi přijde jako joke

typedef char neco[20];

a rozhodně takto struktury nezapisuj, je to nepřehledný! 
mělo by to vypadat spíše takto nějak

typedef struct Date
{
    unsigned day;
    unsigned month;
    unsigned year;
};

typedef struct Friend
{
    char name[30];
    char surname[30];
    char nick[30];
    Date date;
};

void printFriend(const Friend& f)
{
    printf("%s %s (%s) - %d.%d.%d\n",
        f.name, f.surname, f.nick,
        f.date.day, f.date.month, f.date.year);
}

void friendsPrinter(const Friend* friends, const int& size)
{
    for (int i = 0; i < size; i++) {
        printFriend(friends[i]);
    }
}

int main()
{
    Friend friends[3];
    // tento zapis je v tomhle pripade sice validni, ale spis pouzivej
    // klasickej pres teckovou notaci, z tohodle bych treba na prvni pohled
    // nepoznal, co je jmeno a co prijmeni nebo jestli je prvni
    // den nebo mesic v datumu
    friends[0] = { "Pavel", "Maly", "prcek", { 1, 1, 1980 } };
    friends[1] = { "Petr", "Velky", "obr", { 2, 2, 1953 } };
    friends[2] = { "Tomas", "Stredni", "neco", { 3, 3, 1894 } };

    friendsPrinter(friends, sizeof(friends) / sizeof(Friend));
	
    return 0;
}

další a podle mě lepší řešení je, když každá struktůra bude mít nějakou metodu toString(), ktera vrati přímo řetězec v nějakým formátu danné struktůry, potom nemusíš vytvářet žádnou metodu pro výpis Friend

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ondra.holub+1
Stálý člen
6. 12. 2014   #3
-
0
-

Ještě doplnění k té forward deklaraci funkce: Konstrukci

void fn();

/* nejaky dalsi kod */

void fn(int a) /* konkretni parametry */
{
}


lze použít, ale konkrétní parametry musí být známy před voláním příslušné funkce. Takže 

void fn1();

void fn2();

void fn2(int);

int main(int argc, char* argv[])
{
    fn1(10); /* toto nejde */
    fn2(10); /* toto jde */
    return 0;
}

void fn1(int a)
{
}

void fn2(int a)
{
}


Samozřejmě to platí pro C. V C++ má fn(); jiný význam.

Nahlásit jako SPAM
IP: 212.96.189.–
Jakub
~ Anonymní uživatel
865 příspěvků
7. 12. 2014   #4
-
0
-

díky lidi, hodně jste mi pomohli, pro příště budu chytřejší :) ...ještě jednou díky 

Nahlásit jako SPAM
IP: 93.93.33.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 60 hostů

Podobná vlákna

Struktura — založil sexmachina

štruktúra — založil street punk

Struktura a pole — založil kyklop

Struktura databáze — založil dalaman

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý