.[ ČeskéHry.cz ].
C++ problem s header files
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 21. červen 2009, 09:13:07    Předmět: Odpovědět s citátem

koso napsal:
skusam to mam v jednom solution dva cpp subory: nastav.cpp a vypis.cpp

A co takhle pridat jeste nastav.h, do nej dat radek:
kód:
void set(int *a);

a pak tento h soubor includovat ve vypis.cpp (a v nastav.cpp se to dela taky). Nedivil bych se kdyby ti inkludy uz tady v tomhle vlakne nekdo vysvetloval (ja to necetl cele), tak si to kdyztak zopakuj ...
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 21. červen 2009, 09:43:41    Předmět: Odpovědět s citátem

dakujem vsetkym ktori mi pomohli s mojim problemom.thanks Smile Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 21. červen 2009, 12:45:50    Předmět: Odpovědět s citátem

mam znova problem. ked som to skusal len tak na tom priklade tak to islo ale ked som to prepisal do toho casu tak to hadze linker problem error LNK2019: unresolved external symbol "void __cdecl cas(int *,int *,int *,int *,int *,int *,int *,char *,char *)" (?cas@@YAXPAH000000PAD1@Z) referenced in function _main
ak treba tak sem hodim zdrojaky.
vopred dakujem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1051

PříspěvekZaslal: 21. červen 2009, 13:06:20    Předmět: Odpovědět s citátem

takze treba mat v jednom projekte nahodene subory *.cpp s main() tak aj s cas(). teda aby to prekladac prelozil a potom linker zlinkoval.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 21. červen 2009, 13:24:36    Předmět: Odpovědět s citátem

ale ja mam v jednom projekte main.cpp aj cas.cpp Crying or Very sad
som bezradny Crying or Very sad
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 21. červen 2009, 13:29:21    Předmět: Odpovědět s citátem

Kdybys byl býval pozorně četl ten odkaz na wiki, tak bys některé odpovědi už znal. Jinak ten unresolved external může být taky způsoben tím, že máš rozdílné hlavičky té funkce (neboli v .h je něco trošku jiného než v .cpp)
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 21. červen 2009, 15:15:34    Předmět: Odpovědět s citátem

to som uz vyresil ale vali sa na mna dalsi a dalsi problem teraz to vypisuje
syntax error : 'void' should be preceded by ';'
cize ze void by mala predchadzat ";"
cas.cpp zacina takto:


kód:
#include<cstdlib>
#include<iostream>
#include<windows.h>
#include<string.h>
#include<cas.h>

void cas(int *sec=0, int *min=0, int *hod=0, int *den=0, int *tyz=0, int *mes=0, int *rok=0, char *den_meno[10] = 0, char *mes_meno[10] = 0)
{
     *den = 1; *tyz = 1; *mes = 1; *rok = 1992;
     
    
   
//////a main.cpp:
#include<cstdlib>
#include<iostream>
#include<cas.h>

int main()
{
   int a,b,c,d,e,f,g;
   char h, hh;
   cas(&a,&b,&c,&d,&e,&f,&g,&h,&hh);
   printf("%d",a);
   system("pause");
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 21. červen 2009, 15:22:56    Předmět: Odpovědět s citátem

Syntaktická chyba. To už by sis měl vyřešit sám. Je třeba zkontrolovat i hlavičkový soubor cas.h jak je napsáno na té wiki.
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 21. červen 2009, 20:02:09    Předmět: Odpovědět s citátem

zase prosim o pomoc.tu su skripty:
cas.cpp:
kód:
#include<cstdlib>
#include<iostream>
#include<windows.h>
#include<string.h>

void cas(int *p_sec, int *p_min, int *p_hod, int *p_den, int *p_tyz, int *p_mes, int *p_rok, char *p_den_meno, char *p_mes_meno)
{
   int sec=0,min=0,hod=0,den=0,tyz=0,mes=0,rok=0;
   char den_meno[10], mes_meno[10];
   
    p_sec=&sec;
   p_min=&min;
   p_hod=&hod;
   p_den=&den;
   p_tyz=&tyz;
   p_mes=&mes;
   p_rok=&rok;
   p_den_meno=&den_meno[10];
   p_mes_meno=&mes_meno[10]; 
   den = 1;
   tyz = 1;
   mes = 1;
   rok = 1992;
     
    
      while(sec!=65)
      {
              //Sleep(100);
                  sec=sec+1;
                  if(sec==60){sec=0; min=min+1;}
                  if(min==60){min=0; hod=hod+1;}
                  if(hod==24){hod=0; den=den+1;}
              if(den>7){den=1; tyz=tyz+1;}
              if(tyz>4){tyz=1; mes=mes+1;}
              if(mes>12){mes=1; rok=rok+1;}
   
              switch(den)
              {
               case 1: strcpy(den_meno, "pondelok");break;
               case 2: strcpy(den_meno, "utorok");break;
               case 3: strcpy(den_meno, "streda");break;
               case 4: strcpy(den_meno, "stvrtok");break;
                case 5: strcpy(den_meno, "piatok");break;
               case 6: strcpy(den_meno, "sobota");break;
               case 7: strcpy(den_meno, "nedela");break;
              }
              //////////////////////////////////////////////////////////////////////////////////////////
              switch(mes)
              {
               case 1: strcpy(mes_meno, "januar");break;
               case 2: strcpy(mes_meno, "februar");break;
               case 3: strcpy(mes_meno, "marec");break;
               case 4: strcpy(mes_meno, "april");break;
                case 5: strcpy(mes_meno, "maj");break;
               case 6: strcpy(mes_meno, "jun");break;
               case 7: strcpy(mes_meno, "jul");break;
               case 8: strcpy(mes_meno, "august");break;
               case 9: strcpy(mes_meno, "september");break;
               case 10: strcpy(mes_meno, "oktober");break;
               case 11: strcpy(mes_meno, "november");break;
               case 12: strcpy(mes_meno, "december");break;
              }
              /////////////////////////////////////////////
                  //printf(" %.2d:%.2d:%.2d %s %d.tyzden %s %d\n",hod,min,sec,den_meno,tyz,mes_meno,rok);
      }
      //system("pause");
}       


cas.h:
kód:
#ifndef _CAS_H_
#define _CAS_H_

void cas(int *p_sec, int *p_min, int *p_hod, int *p_den, int *p_tyz, int *p_mes, int *p_rok, char *p_den_meno, char *p_mes_meno);

#endif


main.cpp:
kód:
#include<cstdlib>
#include<iostream>
#include<cas.h>

int main()
{
   int a;
   cas(&a,0,0,0,0,0,0,0,0);
    printf("%d",a);
   system("pause");
}


ked to spustim nabehne konzola ale nic sa nevypise.neviem si s tym rady.HELP
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 21. červen 2009, 21:24:19    Předmět: Odpovědět s citátem

Ze jsem tak smely, co by ten kod mel ve vysledku delat?
Zvlaste mne zaujala ta podminka sec != 65.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 22. červen 2009, 05:37:43    Předmět: Odpovědět s citátem

ta podmienka je tam len tak aby sa cyklus opakoval.neskor ju nahradim aby som mohol cyklus zastavit. a vo vysledku to pocita sekundy podla nich hodiny a tak dalej az po roky. ale zrychlene
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
koso



Založen: 28. 05. 2009
Příspěvky: 110

PříspěvekZaslal: 22. červen 2009, 05:45:34    Předmět: Odpovědět s citátem

koso napsal:
zase prosim o pomoc.tu su skripty:
cas.cpp:
kód:
#include<cstdlib>
#include<iostream>
#include<windows.h>
#include<string.h>

void cas(int *p_sec, int *p_min, int *p_hod, int *p_den, int *p_tyz, int *p_mes, int *p_rok, char *p_den_meno, char *p_mes_meno)
{
   int sec=0,min=0,hod=0,den=0,tyz=0,mes=0,rok=0;
   char den_meno[10], mes_meno[10];
   
    p_sec=&sec;
   p_min=&min;
   p_hod=&hod;
   p_den=&den;
   p_tyz=&tyz;
   p_mes=&mes;
   p_rok=&rok;
   p_den_meno=&den_meno[10];
   p_mes_meno=&mes_meno[10]; 
   den = 1;
   tyz = 1;
   mes = 1;
   rok = 1992;
     
    
      while(sec!=65)
      {
              //Sleep(100);
                  sec=sec+1;
                  if(sec==60){sec=0; min=min+1;}
                  if(min==60){min=0; hod=hod+1;}
                  if(hod==24){hod=0; den=den+1;}
              if(den>7){den=1; tyz=tyz+1;}
              if(tyz>4){tyz=1; mes=mes+1;}
              if(mes>12){mes=1; rok=rok+1;}
   
              switch(den)
              {
               case 1: strcpy(den_meno, "pondelok");break;
               case 2: strcpy(den_meno, "utorok");break;
               case 3: strcpy(den_meno, "streda");break;
               case 4: strcpy(den_meno, "stvrtok");break;
                case 5: strcpy(den_meno, "piatok");break;
               case 6: strcpy(den_meno, "sobota");break;
               case 7: strcpy(den_meno, "nedela");break;
              }
              //////////////////////////////////////////////////////////////////////////////////////////
              switch(mes)
              {
               case 1: strcpy(mes_meno, "januar");break;
               case 2: strcpy(mes_meno, "februar");break;
               case 3: strcpy(mes_meno, "marec");break;
               case 4: strcpy(mes_meno, "april");break;
                case 5: strcpy(mes_meno, "maj");break;
               case 6: strcpy(mes_meno, "jun");break;
               case 7: strcpy(mes_meno, "jul");break;
               case 8: strcpy(mes_meno, "august");break;
               case 9: strcpy(mes_meno, "september");break;
               case 10: strcpy(mes_meno, "oktober");break;
               case 11: strcpy(mes_meno, "november");break;
               case 12: strcpy(mes_meno, "december");break;
              }
              /////////////////////////////////////////////
                  //printf(" %.2d:%.2d:%.2d %s %d.tyzden %s %d\n",hod,min,sec,den_meno,tyz,mes_meno,rok);
      }
      //system("pause");
}       


cas.h:
kód:
#ifndef _CAS_H_
#define _CAS_H_

void cas(int *p_sec, int *p_min, int *p_hod, int *p_den, int *p_tyz, int *p_mes, int *p_rok, char *p_den_meno, char *p_mes_meno);

#endif


main.cpp:
kód:
#include<cstdlib>
#include<iostream>
#include<cas.h>

int main()
{
   int *a;
   cas(&a,0,0,0,0,0,0,0,0);
    printf("%d",*a);
   system("pause");
}


ked to spustim nabehne konzola ale nic sa nevypise.neviem si s tym rady.HELP
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 22. červen 2009, 07:08:18    Předmět: Odpovědět s citátem

Tak velmi zajimave je predavani celociselnych typu pointerem. Very Happy To while != je divne, vymaz. Ale proc se ksakru divis ze to nefunguje, kdyz predavas samy nuly a chces vypsat mesice a dny?? Zkus to volat se samyma jednickama. Mel bys taky udelat default vetev, ktera by treba vracela -1...
BTW: pro vypsani data je trochu divne mit aktualni tyden, tohle vymaz - bude stacit den od zacatku mesice.
BTW2: To "den_meno" a "mesic meno" nepredavej. Pro lepsi praci si je udelej jako stringy a inicializace neni potreba.
BTW3:
kód:

                  if(sec==60){sec=0; min=min+1;}
                  if(min==60){min=0; hod=hod+1;}
                  if(hod==24){hod=0; den=den+1;}
              if(den>7){den=1; tyz=tyz+1;}
              if(tyz>4){tyz=1; mes=mes+1;}
              if(mes>12){mes=1; rok=rok+1;}

kód:

                  while(sec>=60){sec-=60; min=min+1;}
                  while(min>=60){min-=60; hod=hod+1;}
                  while(hod>=24){hod-=24; den=den+1;}
              while(mes>12){mes-=12; rok=rok+1;}

Pokud chces menit cas, tj. pri kazdem volani funkce provest kod vyse, aby se projevil i na promennych, ktere predavas, pouzij
void cas(int &sec, int &min, int &hod, int &den, int &mes, int &rok)
Jinak pouzij toto:
void cas(int sec, int min, int hod, int den, int mes, int rok)

EHM... JAK SE TI TO MA VYPSAT KDYZ JE PRINTF ZAKOMENTOVANY??? Shocked

napsal bych i celou procedurku, ale vypada to, ze ty potrebujes kapanek procvicit Wink

Uz se tesim, az me Eosie zacne opravovat Smile

EDIT: Jeste me napadlo, ze pokud pouzivas ciste C, musis pouzivat misto referenci ukazatele. Pokud ne, existuje i cout Wink
(Samozrejme kazdemu dle jeho chuti)
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 22. červen 2009, 08:30:00    Předmět: Odpovědět s citátem

koso napsal:

kód:


int main()
{
   int a;
   cas(&a,0,0,0,0,0,0,0,0);



zde predavas nulove pointery a ve funkci cas() je neco takoveho nepripustne.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 22. červen 2009, 09:15:00    Předmět: Odpovědět s citátem

Opravdu doporucuji zacit s necim jednodussim, tazatel zde evidentne ma problemy i s podminkou. Ted ho sice dotlacite po 20 strankach ke spravnemu reseni, jemu to vsak k nicemu nebude.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Strana 4 z 6

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna