Problem sa Baferom

1

Problem sa Baferom

offline
  • 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...



+ Kod



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Predpostavljam da misliš na čitanje podataka? To je normalno ponašanje za funkciju scanf. Pogledaj ovde kako možeš pročitati celu liniju: http://www.mycity.rs/Opste-programiranje/1-Moderne.....ani-2.html



offline
  • 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 Sad

  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...

offline
  • 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" Smile Da li možda koristiš neki integrisani terminal iz IDE-a za terstiranje? Probaj da pokreneš program izvan IDE-a.

offline
  • 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. Smile

offline
  • 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.

offline
  • C# and PHP Developer
  • 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 Very Happy

offline
  • 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... Smile

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)

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Čudni su putevi C-a Smile Bitno je da si rešio problem... nikad se ne bih setio da upišem %[^\n] u scanf, svaka čast za ideju Smile

offline
  • 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 Sad

Ko je trenutno na forumu
 

Ukupno su 442 korisnika na forumu :: 7 registrovanih, 0 sakrivenih i 435 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Dorcolac, lelemud, Milos82, TBF1D, voja64, zlaya011, zziko