GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: mauladam - 2011. december 20. - 23:27:59

Cím: Újabb sscanf error(033)
Írta: mauladam - 2011. december 20. - 23:27:59
Jó estét mindenkinek!
Újabb sscanf problémával küszködök.
A gond az, hogy van egy globálisan dekralált \"k\" nevû 32 cellás változóm( new k[32]; )
Egy fájl megnyitása után, sscanf-al szeretném szétdarabolni az adott sort:
if(!sscanf(str, \"s[32]i\", k,vi) && k == kulcs) return vi;
A \"kulcs\" a függvényem paramétere, az adott sorban ezt szeretném keresni, ha benne van akkor vissza szeretnék térni a sor integer részével, amit a \"vi\" változóba teszek.
Hibaüzenet:
 
error 033: array must be indexed (variable \"k\")

 
Ebben szeretném a segítségeteket kérni.
Cím: Újabb sscanf error(033)
Írta: Zsolesszka - 2011. december 21. - 00:12:13
array must be indexed (variable \"k\")
Tömb legyen indexelt.
Másképp mivel ez egy karakterláncnak szánt változó ami 32 cella ami 32 karaktert tárol ezért nem használhatod a dupla egyenlõség jelet.
Most kérdés hogy a kulcs az tömb vagy szimpla változó?
Használd az strcmp-t ha a kulcs is tömb(array).
Cím: Újabb sscanf error(033)
Írta: Kovacs_Richard - 2011. december 21. - 09:33:32
Idézetet írta: ɐʞzssǝlosz date=1324422733\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"14498\" data-ipsquote-contentclass=\"forums_Topic
array must be indexed (variable \"k\")
Tömb legyen indexelt.
Másképp mivel ez egy karakterláncnak szánt változó ami 32 cella ami 32 karaktert tárol ezért nem használhatod a dupla egyenlõség jelet.
Most kérdés hogy a kulcs az tömb vagy szimpla változó?
Használd az strcmp-t ha a kulcs is tömb(array).
 
ööö nem tudom ti hogyan használjátok a tömböket én személy szerint nem csak string-eket tárolok bennük :) bár egy asszociativ tömb-ben nehéz is lenne mondjuk :D
pl így is lehet kezelni:
[pawn]
new k[32]; // akkor 0-tól 31-ig indexelt cellái vannak
k[0] = 1;
k[24] = 6253;
if(k[8] == 74)
{
// ...
}
Fuggveny(k[3]);
[/pawn]
ja és szerintem itt a megoldás az lehetne hogy ha string-et ( szöveget ) tartalmaz a \"k\" tömb akkor igy hasonlítsd össze az \"értékét\" az integer tipussal:
[pawn]if(strval(k) == kulcs)[/pawn]
a szövegbõl számot csinál, bár ha a kulcs is szöveg akkor strcmp megoldásra van szükséged :)
Cím: Újabb sscanf error(033)
Írta: Gentleman - 2011. december 21. - 11:50:35
Esetleg meg is adhatja, hogy a k változó melyik celláját szeretné használni.
Én régebben csinálgattam olyat, hogy egy változónak adtam 100 cellát és abba tárolgattam számokat.
Utána már csak if(változó[cellaszám] == X)
Persze ilyenkor lehet ciklusozni is, (én így csináltam meg a játékos vezetéknevének lekérdezését).
De a legegyszerûbb mód ha szöveget akarsz benne tárolni akkor a fentebb említett strcmp lesz a haverod
Cím: Újabb sscanf error(033)
Írta: mauladam - 2011. december 21. - 17:23:42
Köszönöm mindenkinek, végre sikerült! | Zárok.