C nyelvben ha különböző típusú adataim vannak vesszővel elválasztva, akkor hogy tudom beolvasni ezeket egy általam definiált structba?
pl.: Teszt Aladár, 1940, angol C1, vezető, 268000
typedef struct {
char nev[100];
int szulido;
char nyelv[20];
char beosztas[150];
int fizetes;
}dolgozo;
és ha esetleg azt meg tudnám oldani, hogy vessző helyett tabbal választom el az egy sorban lévő adatokat akkor működne valahogy a sscanf-fel?!
Röviden le tudnád írni, hogy kell egyenként végigmenni a tömbön, ahogy mondtad?
Előre is nagyon szépen köszönöm a segítséged! :)
Ja az el is felejtettem, hogy van regex.ű
char c1[10], c2[10];
sscanf(be_adat, "%[^','],%[^','],%[^','],%[^','],%[^',']", dolgozo.nev, c1, dolgozo.nyelv, dolgozo.beosztas, c2);
dolgozo.szulido = atoi(c1);
dolgozo.fizetes = atoi(c2);
Így is próbáltam, csak a fáradtságban elütöttem egy karaktert és azért nem működött...
Még egyszer nagyon szépen köszönöm!!! Egy idegösszeomlástól mentettél most meg :)
azért így szebb:
fscanf(file, "%[^','], %d, %[^','], %[^','], %d", &ember.nev, &ember.szulido, &ember.nyelv, &ember.beosztas, &ember.fizetes);
a példafájl a következő:
"Teszt Aladar, 1940, angol C1, vezeto, 268000"
nyilván működik úgy is, hogy string és sscanf
ami int azt olvassuk be integerként, ne konvertálgassunk
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!