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?
- 1367 megtekintés
Hozzászólások
Mintha a *scanf nem ismerne regexp-et. Vagy mit is akarsz csinálni?
- A hozzászóláshoz be kell jelentkezni
soronként végig olvasni egy file-t, ezt a megoldást találtam leg egyszerübbnek
ha csak a "%s"-t használom akkor szavanként (stringenként) frankón végig megy rajta, csak így nem
- A hozzászóláshoz be kell jelentkezni
fscanf helyett fgets kell neked
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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(¶m1,sizeof(param1));
bzero(¶m2,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.
- A hozzászóláshoz be kell jelentkezni