Poslao: 18 Jun 2013 17:24
|
offline
- NIx Car
- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
Opet imam problem sa Baferom, no problem je sada drugacije prirode. Naime dobio sam neki obimniji projekat da radim, i ima dosta podataka koje korisnik treba da unese (10ak)... E sad problem je u tome sto, ukoliko se u nekom stringu nalazi razmak (npr Novi Sad), program ce se ponasati kao da mu je bafer prepun...
+ Kodavion *DodajNoviLet(avion *glava)
{
avion *novi = (avion *) malloc(sizeof(avion));
fflush(stdout);
printf("Unesite broj leta : ");
scanf("\n%d", &novi->brojLeta);
printf("Unesite oznaku aviona : ");
scanf("\n%s",&novi->oznakaAviona);
printf("Koliko mesta poseduje avion : ");
scanf("\n%d", &novi->brojMesta);
printf("Mesto poletanja aviona :");
scanf("\n%s",&novi->mestoPoletanja);
printf("Datum poletanja aviona [dan.mesec.godina.] :");
scanf("\n%s",&novi->datumPoletanja);
printf("Vreme poletanja aviona [cas : minut] :");
scanf("\n%s",&novi->vremePoletanja);
printf("Mesto sletanja aviona :");
scanf("\n%s",&novi->mestoSletanja);
printf("Datum sletanja aviona [dan.mesec.godina.] :");
scanf("\n%s",&novi->datumSletanja);
fflush(stdin);
printf("Vreme sletanja aviona [cas : minut] :");
scanf("\n%s",&novi->vremeSletanja);
printf("Cena leta u dinarima : ");
scanf("%d", &novi->cenaLeta);
novi->sledeci = glava;
glava = novi;
return glava;
}
Ove dve funkcije sam dodao na pocetku main-a
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stdin, NULL, _IONBF, 0); i opet nece
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 18 Jun 2013 21:11
|
offline
- NIx Car
- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
Napisano: 18 Jun 2013 21:09
Idalje nista , sad je jos i gore
avion *DodajNoviLet(avion *glava)
{
avion *novi = (avion *) malloc(sizeof(avion));
fflush(stdout);
fflush(stdin);
printf("Unesite broj leta : ");
scanf("\n%d", &novi->brojLeta);
printf("Unesite oznaku aviona : ");
fflush(stdin);
gets(novi->oznakaAviona);
printf("Koliko mesta poseduje avion : ");
fflush(stdin);
scanf("\n%d", &novi->brojMesta);
printf("Mesto poletanja aviona :");
fflush(stdin);
gets(novi->mestoPoletanja);
printf("Datum poletanja aviona [dan.mesec.godina.] :");
fflush(stdin);
gets(novi->datumPoletanja);
printf("Vreme poletanja aviona [cas : minut] :");
fflush(stdin);
gets(novi->vremePoletanja);
printf("Mesto sletanja aviona :");
fflush(stdin);
gets(novi->mestoSletanja);
printf("Datum sletanja aviona [dan.mesec.godina.] :");
fflush(stdin);
gets(novi->datumSletanja);
printf("Vreme sletanja aviona [cas : minut] :");
gets(novi->vremeSletanja);
printf("Cena leta u dinarima : ");
scanf("\n%d", &novi->cenaLeta);
novi->sledeci = glava;
glava = novi;
return glava;
}
Dopuna: 18 Jun 2013 21:11
Zato nisam ni koristio gets, zato sto mi je odmah brljavio...
|
|
|
|
Poslao: 19 Jun 2013 08:03
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Moraš napisati malo više od "sad je još gore" i "odmah brljavi" Da li možda koristiš neki integrisani terminal iz IDE-a za terstiranje? Probaj da pokreneš program izvan IDE-a.
|
|
|
|
Poslao: 19 Jun 2013 10:22
|
offline
- NIx Car
- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
Napisano: 19 Jun 2013 10:13
Hocu da kazem da mi se Bafer jos pre napuni tj odma posle prvog unosa mi ovaj sledeci preskoci... Probao sam i preko terminala da otvorim, ali nece...
Dopuna: 19 Jun 2013 10:22
Srki, resio sam problem, ali na drugaciji nacin. Koristio sam iskljucivo scanf funkciju, i to sa malo izmenjenim paramtrom pod navodnicima.
scanf("\n%[^\n]",&novi->mestoPoletanja); na ovaj nacin mi kod radi bez greske.
|
|
|
|
Poslao: 19 Jun 2013 10:45
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Evo... napisao sam programče koje provereno radi:
#include <stdio.h>
#include <string.h>
void readLine(char *line)
{
fflush(stdin);
gets(line);
}
int main()
{
char str[100];
do
{
printf("Unesi tekst: ");
readLine(str);
if (strlen(str) > 0)
printf("Upisao si [%s]\n", str);
}
while (strlen(str) > 0);
return 0;
}
Kad udariš praznu liniju, program će se zatvoriti. Probaj da li radi kod tebe.
|
|
|
|
Poslao: 19 Jun 2013 10:50
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
A jooj kad vidim te do while petlje smuci mi se zivot. Za ovolike godiene programiranja nikada ama nikada je nisam napisao i niti cu. Secam se kad sam ucio odma sam preskocio
|
|
|
|
Poslao: 19 Jun 2013 11:06
|
offline
- NIx Car
- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
Napisano: 19 Jun 2013 11:02
To tvoje programce radi...
Dopuna: 19 Jun 2013 11:06
Samo mi nije jasno zasto ne radi kada prekucam tu tvoju funkciju onako (prvo ocistim bafer pa onda trazim da se unese string)
|
|
|
|
|
Poslao: 19 Jun 2013 11:47
|
offline
- NIx Car
- Legendarni građanin
- Més que un club
- Glavni vokal @ Harpun
- Pridružio: 27 Feb 2009
- Poruke: 3898
- Gde živiš: Novi Sad,Klisa
|
Mala pomoc sa strane je bila, tako da se ja sam toga i nisam setio
|
|
|
|