Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)

[es] :: C/C++ programiranje :: C/C++ za početnike :: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)

[ Pregleda: 2194 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Brolly

Član broj: 66668
Poruke: 363
*.lns1.pie.bigpond.net.au.



Profil

icon Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)09.02.2011. u 14:27 - pre 160 meseci
Kako je ovo moguce? Jedan isti, IDENTICAN kod da radi, a u drugom slucaju ne radi?

Sad radi.

Sad ne radi.

Ovo mi se u zivotu nije desilo.




Malo detaljnije:

Prekopirao sam jedan primer koda u Code:Blocks (copy/paste) i radilo je. Otkucao sam svoj kod onako iz glave, i nije radio. I ja nista, krenem da trazim gresku, markiram kao komentare deo po deo, brisem, uproscavam oba programa sve vise i na kraju dodjoh do ovoga sto vidite - ISTI KOD, jedan radi, drugi ne radi! Ako otvorim novi fajl i copy/paste-ujem program sto RADI, taj ce kompajlirati. A ako onaj sto ne radi copy/pastujem, novi kod u novom fajlu NECE radi.

Nemam blage veze sta da radim....
...
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.static.sbb.rs.



+987 Profil

icon Re: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)09.02.2011. u 14:32 - pre 160 meseci
Pogledaj taj kod koji ne radi u Notepad++ editoru, i ukljuci da vidis nevidljive karaktere, CR LF i sl. najvaznije od svega, da li ima byte order bajtove na pocetku fajla. Moguce je da te to zeza. A onda uradi compare ta 2 fajla preko npr. Total commandera.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)09.02.2011. u 14:39 - pre 160 meseci
Razlika je između CDAccountV1 i CDAccountVl. U jednom slučaju imaš broj 1, a u drugom malo slovo L.
 
Odgovor na temu

Brolly

Član broj: 66668
Poruke: 363
*.lns1.pie.bigpond.net.au.



Profil

icon Re: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)09.02.2011. u 14:51 - pre 160 meseci
jeste....
I ja neki programer.... strasno.....

Hvala na odgovorima, bolje da se nisam javljao...
...
 
Odgovor na temu

Lord Of The Nations
Direktor
sarajevo

Član broj: 283643
Poruke: 27
*.mbb.telenor.rs.

ICQ: 584698
Sajt: www.ja.com


+1 Profil

icon Re: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)20.04.2011. u 15:20 - pre 158 meseci
Ako sam dobro svatio ti pokusavas da koristis pointere.
Ovako bi tvoj kod izgledao kod mene:

Code:

#include <iostream>

using namespace std;

struct CDAccountV1
{
   double balance;
   double interestRate;
   int term;
};
void getData(CDAccountV1*theAccount);
int main()
{
   CDAccountV1 account;
   getData(&account);

    return 0;
}
void getData(CDAccountV1*theAccount)
{  cout << "\nEnter account balance: ";
   cin >>theAccount->balance;
   cout << "\nEnter account interest rate: ";
   cin >>theAccount->interestRate;
   cout << "\nEnter the number of months until maturity: ";
   cin >> theAccount->term;
}


I da zasto toliko svi preferirate iostream.
mislim sa njim je program u startu min 800 kb
umesto cin i cout moze da se upotrebi sledece

Code:

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

int main()
{
char values[10];
int IntData = 0;
fgets(values,sizeof(values),stdin);
intData = atoi(values);
memset(values,0,10);
if(intData == 0 )
printf("error\n");
else
printf("intData = %i\n",intData);
return 0
}


Ovaj Program U Code::Blocks Kod Mene Je 3 KB
Necujni Izvestavac
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)20.04.2011. u 16:06 - pre 158 meseci
Iako je na početno pitanje već odgovoreno ajde da odgovorimo i na novo. Prednost cout-a u odnosu na printf se vidi kad imaš bitno veći projekat. Govorimo o hiljadama .cpp fajlova i milionima linija koda. U slučaju printf-a ako želiš da promeniš tip promenljive (long long ili double umesto int) onda obavezno moraš da promeniš i tip unutar format stringa svuda gde se ta promenljiva koristi. Ako slučajno negde ne promeniš format program će pogrešno raditi, a kompajler neće ni primetiti problem. U slučaju cout-a sve lepo radi od starta, jer nema šta da se sinhronizuje. Kompajler će automatski pozvati operator << sa drugim tipom parametra. Čak i ako ništa ne menjaš, i dalje moraš da paziš svaki put kad pišeš printf da bi uskladio parametar u formatu sa parametrom funkcije. To je problem, jer neizostavno ćeš jednom negde pogrešiti, a greška će se videti tek kod korisnika (što je jako, jako loše).

Cout, s druge strane, ima nedostatak da je manje pogodan za internacionalizaciju (omogućavanje programa da sve ispisuje na nekom drugom jeziku). Rečenica je rascepkana na delove, što predstavlja problem prevodiocu koji te delove treba da prevede. Kod printf-a rečenica nije rascepkana, ali takođe nije zgodna za internacionalizaciju, jer ako imaš više od jednog parametara onda može da se desi da na drugom jeziku rečenica najprirodnije glasi ako se parametrima zamene mesta (što nije podržano ni u printf-u, ni u cout-u). Zato je u boost-u recimo uvedena Format biblioteka, http://www.boost.org/doc/libs/1_46_1/libs/format/doc/format.html koja je rešenje bolje od oba prethodna.
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.hsd1.ca.comcast.net.



+1001 Profil

icon Re: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)20.04.2011. u 16:47 - pre 158 meseci
Citat:
Mihajlo Cvetanović: ... a kompajler neće ni primetiti problem.


Zavisi od kompajlera i narocito od compile flag-ova setovanih u Makefile-u.

Cesto se desava druga krajnjost - da je kompajler do te mere zlocudan da ti ne prihvata %d za long promenljivu nego trazi %ld,
i/ili %lld za 64-bitne promenljive, sto moze da bude bas iritantno kad imas 5-6 argumenata za printf, pa kopas da vidis na koji se
zapravo zali...potrosis vise vremena na glancanje debug print-ova nego na sam kod kojim se bavis.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Dva potpuno identicna koda, jedan radi drugi ne radi? Kako je ovo moguce? (Code::Blocks problem)

[ Pregleda: 2194 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.