Szerző Téma: Újabb sscanf error(033)  (Megtekintve 820 alkalommal)

Újabb sscanf error(033)
« Dátum: 2011. december 20. - 23:27:59 »
0 Show voters
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.

Újabb sscanf error(033)
« Válasz #1 Dátum: 2011. december 21. - 00:12:13 »
+1 Show voters
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 elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Újabb sscanf error(033)
« Válasz #2 Dátum: 2011. december 21. - 09:33:32 »
0 Show voters
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 :)
« Utoljára szerkesztve: 2011. december 21. - 09:38:46 írta Kovacs_Richard »
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Újabb sscanf error(033)
« Válasz #3 Dátum: 2011. december 21. - 11:50:35 »
0 Show voters
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

Újabb sscanf error(033)
« Válasz #4 Dátum: 2011. december 21. - 17:23:42 »
0 Show voters
Köszönöm mindenkinek, végre sikerült! | Zárok.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal