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

kako da ucitam citavu liniju iz dat. sa fscanf?

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

[ Pregleda: 1084 | Odgovora: 11 ]

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

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);
}
06.03.2006. u 22:12 

Marko Stankovic

Član broj: 11
Poruke: 306
212.200.120.*

Jabber: urobor@elitesecurity.org
ICQ: 42897384


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?06.03.2006. u 23:14
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.
06.03.2006. u 23:14 

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



07.03.2006. u 01:36 

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
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 ! ! !
07.03.2006. u 03:37 

fearless

Član broj: 74584
Poruke: 155
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
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
07.03.2006. u 12:25 

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
rijesio sam problem!

Zahvaljujem se na pomoci svima...
07.03.2006. u 12:46 

Marko Stankovic

Član broj: 11
Poruke: 306
212.200.120.*

Jabber: urobor@elitesecurity.org
ICQ: 42897384


Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?07.03.2006. u 14:54
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.
07.03.2006. u 14:54 

yooyo
Centroid / Technical director

Č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
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
08.03.2006. u 15:10 

NrmMyth
Split, Kaštela

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



Profil

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

yooyo
Centroid / Technical director

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

08.03.2006. u 17:36 

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
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 ! ! !
08.03.2006. u 21:22 

NrmMyth
Split, Kaštela

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



Profil

icon Re: kako da ucitam citavu liniju iz dat. sa fscanf?09.03.2006. u 01:19
Zanimljivo... dobro je znati.
09.03.2006. u 01:19 

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

[ Pregleda: 1084 | Odgovora: 11 ]

Postavi temu Odgovori

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