fscanf kérdés

Fórumok

conf= fopen (conf_file,"r");
do

{
fscanf(conf,"%[^\n]s",ossz);
printf("%s\n",ossz);
}
while (!feof(conf));

ez miért nem olvassa végig a file-t?

Hozzászólások

Mintha a *scanf nem ismerne regexp-et. Vagy mit is akarsz csinálni?

Mert a sorvége jelet nem lépi át. Ellenőrzésképp csináld így:

*ossz = 0;
db = fscanf(conf,"%[^\n]s",ossz);
printf("%d %s\n", db, ossz);

Egyébként meg tényleg az fgets lesz a te barátod

Köszi a segítséget.
Végül így oldottam meg a dolgot:

FILE * conf;
char ossz[512];
char *mbe;
char read_char;
char param1[512];
char param2[512];

conf= fopen (conf_file,"r");

do

{
bzero(&ossz,sizeof(ossz));
mbe=ossz;
do
{
read_char=fgetc(conf);
if (read_char!=' ') *(mbe++)=read_char;
}
while ((*(mbe-1))!='\n');

bzero(&param1,sizeof(param1));
bzero(&param2,sizeof(param2));
sscanf(ossz,"%[^#=]=%[^#]s",param1,param2);
printf("%s -> %s -- %s\n",ossz,param1,param2);
}
while (!feof(conf));
fclose(conf);

így egy file-ból kiveszi az "=" jel két oldalán szereplő adatokat ha nincs előtte "#" jel
Így talán sikerült egy nagyon egyszerű paraméter config file feldolgozót csinálnom.