Ohjelmani lukee tekstitiedostosta rivejä, joilla on aina tietty muoto (esim. A:B -> C:D).
Nykyisessä versiossa ohjelma käy merkkijonoa läpi luottaen ':'-merkkeihin ja hieman huteran ja ruman viritelmän avulla kerää muuttujat taulukoihin. Kirjoittaessani koodia en voinut olla ajattelematta sitä, että joku toinen ohjelmoija on aikaisemmin törmännyt vastaavanlaiseen ongelmaan, ja fiksuudessaan on toteuttanut funktion, joka lukee muuttujat talteen paljon helpommin.
Eli onko C:lle olemassa funktiota, joka tekisi periaatteessa tämän:
Esim. funktio("A:B -> C:D", "%i:%i -> %i:%i", muuttuja1, muuttuja2, ...);
Minkä jälkeen muuttuja1 saisi arvon A, muuttuja2 arvon B jne.
Funktio sscanf tekee aika tarkalleen sen mitä kuvaat tuossa. Ainoana erona esimerkkiisi on, että sille annetaan parametreina muuttujien osoitteet, eli:
#include <stdio.h> ... int a,b,c,d; sscanf("3:5 -> 64:36", "%i:%i -> %i:%i", &a, &b, &c, &d);
Vaihtoehtoisesti voit lukea arvot muuttujiin suoraan lukiessasi tekstitiedostoa funktiolla fscanf:
FILE* f = fopen("tiedoto.txt","r"); int a,b,c,d; fscanf(f, "%i:%i -> %i:%i\n", &a,&b,&c,&d);
Aihe on jo aika vanha, joten et voi enää vastata siihen.