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

kako da ucitam citavu liniju iz dat. sa fscanf?

[es] :: C/C++ programiranje :: kako da ucitam citavu liniju iz dat. sa fscanf?

[ Pregleda: 3094 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

argonius
sarajevo

Član broj: 85300
Poruke: 29
*.dlp490.bih.net.ba.



Profil

icon kako da ucitam citavu liniju iz dat. sa fscanf?06.03.2006. u 22:12 - pre 220 meseci
ne znam kako da u c-u ucitam cijelu liniju iz datoteke zajedno sa svim karakterima i razmacima uz pomoc fscanf. sta bih trebao dodati kodu, i dal je to uopste moguce uz pomoc ove funkcije??


main()
{
FILE *ulaz;
char buffer[300];

fscanf(ulaz,"%s",buffer);
}
 
Odgovor na temu

Marko Stankovic

Član broj: 11
Poruke: 306
212.200.120.*



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?06.03.2006. u 23:14 - pre 220 meseci
Mozes recimo ovako:

Code:

FILE *ulaz;
char buffer[300];
char c;
int i=0;

while((c=fgetc(ulaz))!='\n') buffer[i++]=c;
buffer[i]='\0';



ili mozes da koristis fgets() funkciju, mada cini mi se da ona dodaje i '\n' u string... A mozda i gresim.


update
tek sam sada video da trazis bas pomocu fscanf funkcije. Iskreno trenutno mi ne pada na pamet kako bi to moglo da se odradi, jer kada koristis %s on cita string do prvog belog znaka. Tako da ako nije neophodno da koristis fscanf onda citaj na nacin koji sam opisao iznad.

poz



[Ovu poruku je menjao Marko Stankovic dana 07.03.2006. u 00:23 GMT+1]
I drink to make other people interesting.
 
Odgovor na temu

argonius
sarajevo

Član broj: 85300
Poruke: 29
*.dlp249.bih.net.ba.



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?07.03.2006. u 01:36 - pre 220 meseci
Hvala ti.Na tvoj nacin sam rijesio ovaj problem, vrlo je jednostavan. Ipak volio bih znati da li se nekako mogu izbjeci whitespace sa fscanf-om, pa ako neko uspije naci rjesenje nek mi javi!

pozdrav!



 
Odgovor na temu

zokio
Balkan

Član broj: 27826
Poruke: 43
193.198.39.*

Sajt: student.oss.unist.hr/~zs9..


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?07.03.2006. u 03:37 - pre 220 meseci
bas izricito sa "fscanf()" funkcijom bi to izgledalo nekako ovako mada nema smisla jedino ako ti zadatak izricito nalaze tako, a ako ne onda fino koristi "getc()" kako je covijek naveo i to je to !


Code:

main()
{

FILE *fp;
int i=0;
char c, buf[300];

fp=fopen("imedat", "r");

while((fscanf(fp,"%c",&c))!='\n')
{
buf[i]=c;
i++;
}

}

Poslije spavanja treba odmorit ! ! !
 
Odgovor na temu

fearless

Član broj: 74584
Poruke: 156
212.62.59.*

Sajt: www.phearless.org


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?07.03.2006. u 12:25 - pre 220 meseci
Citat:
ili mozes da koristis fgets() funkciju, mada cini mi se da ona dodaje i '\n' u string

Sto se lako moze i resiti ako bas hoces nju ;). Npr:

Code:

/* zbog fgets-ovog newline upisivanja */
for(i = 0; i < strlen(string); i++) {
      if(string[i] == '\n' || string[i] == '\r') break; }
string[i] = '\0';




[Ovu poruku je menjao fearless dana 07.03.2006. u 13:26 GMT+1]
Phearless - Serbian/Croatian Security Magazine: www.phearless.org
 
Odgovor na temu

argonius
sarajevo

Član broj: 85300
Poruke: 29
*.dlp481.bih.net.ba.



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?07.03.2006. u 12:46 - pre 220 meseci
rijesio sam problem!

Zahvaljujem se na pomoci svima...
 
Odgovor na temu

Marko Stankovic

Član broj: 11
Poruke: 306
212.200.120.*



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?07.03.2006. u 14:54 - pre 220 meseci
Citat:
fearless: Sto se lako moze i resiti ako bas hoces nju ;). Npr:

Code:

/* zbog fgets-ovog newline upisivanja */
for(i = 0; i < strlen(string); i++) {
      if(string[i] == '\n' || string[i] == '\r') break; }
string[i] = '\0';



Naravno da se to lako resava :) Nisam mislio da je komplikovano vec je stvar sto funkcija fgets radi na nacin koji sam ja napisao, odnosno poziva fgetc() dok ne dodje do '\n', pa cisto da covek ima predstavu kako se to radi na neki "sirov" nacin.


@zokio

mislim da taj nacin ne radi jer fscanf ne vraca kod procitanog znaka vec vraca broj procitanih znakova, tako da bi ta petlja uvek bila true.
I drink to make other people interesting.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.beotel.net.



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?08.03.2006. u 15:10 - pre 220 meseci
Code:

fscanf (f, "%[^\n]\n", buffer); // cita sve do kraja reda, i upisuje u buffer a zatim procita i znak za novi red (\n) ali ga nigde nece sacuvati

fscanf (f, " %[^\n]\n", buffer); // preskace vodece whitespace i cita sve do kraja reda, i upisuje u buffer a zatim procita i znak za novi red (\n) ali ga nigde nece sacuvati


yooyo
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?08.03.2006. u 16:20 - pre 220 meseci
Kakva je ovo sintaxa? Smrdi mi na ne standard.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.beotel.net.



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?08.03.2006. u 17:36 - pre 220 meseci
Citat:
NrmMyth: Kakva je ovo sintaxa? Smrdi mi na ne standard.


Gresis. to je po standardu... Samo sto niko nece da cita detalje o format stringu.
http://www.eskimo.com/~scs/cclass/int/sx2f.html

 
Odgovor na temu

zokio
Balkan

Član broj: 27826
Poruke: 43
193.198.39.*

Sajt: student.oss.unist.hr/~zs9..


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?08.03.2006. u 21:22 - pre 220 meseci
Citat:

@zokio

mislim da taj nacin ne radi jer fscanf ne vraca kod procitanog znaka vec vraca broj procitanih znakova, tako da bi ta petlja uvek bila true.


Da u pravu si fscanf() funkcija je korisna u onom mom navedenom kodu samo ako se koristi ovako

Code:


#include<stdio.h>

main()
{

FILE *fp;
int j,i=0;
char c, buf[300];

fp=fopen("imedat.txt", "r");

while((fscanf(fp,"%c",&c))!=EOF)
{
    //printf("%c",c); -ako bas hoces da ti prvo pohranjuje u buffer
buf[i]=c;
i++;
}

for(j=0;j<i;j++)
printf("%c",buf[j]);

}



evo cijelog koda uz pomoc fscanf do kraja datoteke to radi





,a za novi red treba malo razmislit, javim se...

Poslije spavanja treba odmorit ! ! !
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?09.03.2006. u 01:19 - pre 220 meseci
Zanimljivo... dobro je znati.
 
Odgovor na temu

[es] :: C/C++ programiranje :: kako da ucitam citavu liniju iz dat. sa fscanf?

[ Pregleda: 3094 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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