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 1632 korisnika na forumu :: 52 registrovanih, 9 sakrivenih i 1571 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: 8u47, A.R.Chafee.Jr., aramis s, babaroga, bobomicek, bufanje, cenejac111, cinoeye, croato, DejanSt, Denaya, Dimitrise93, djboj, Djokkinen, Duh sa sekirom, Dukelander, dzoni19, GandorCC, gomago, goxin, hooraay, hyla, Ilija Cvorovic, Karla, kikisp, Klecaviks, Kubovac, kunktator, kybonacci, ljuba, maiden6657, Marko Marković, mercedesamg, Mi lao shu, MikeHammer, mikrimaus, milenko crazy north, milutin134, ObelixSRB, oganj123, procesor, repac, Srle993, suton, theNedjeljko, vathra, Viceroy, VJ, Vladko, wolverined4, Wrangler, šumar bk2