Elemezni a string alkatrészek - verem túlcsordulás orosz
Van egy sor a következő formában:
482 u820rv Maria L. Zakaschikova * 9644 4855
Meg kell-e elemezni komponensekre:
- számú taxi (int),
- jármű-azonosító szám (mutató wchar_t. memóriát a bosszú)
- Nevet egy csillaggal (mutató wchar_t. Memóriát a bosszú)
- fogyasztás (float),
- profit (float).
Mivel az eredeti duplabájtos húr is - használható funkció swscanf. Kiderült, a funkció értelmező típusa:
De ahogy látom, ez nem működik. Nem olvasni, még az első INT. Normál kérdés - hol hülye vagyok?
UPD Először köszönet a segítségért és a jó tanácsot. Korrigálása tévedések és kihagyások, amely befolyásolhatta (és valószínűleg) változtatni a látás és a kódot. A lényege a program - olvasni egy fájlt strukturált adatok egy sor szerkezetek. Úgy döntöttem, hogy ezt elolvassa a feltételeket és elemzés azt komponensek, úgy olvastam az adatok nem közvetlenül a változók, és a helyszínen egy tömb tárgyak.
Továbbá az értelmezési funkció átadom őt (hála Vladd) mutató terén (int és float), és ahelyett, hogy UnicodeString típusú mezők átadom az eredmény c_str () függvény, amely visszaadja a mutató egy wchar_t string típusú. Ennek megfelelően a végleges kód így néz ki itt:
UPD2've rögzített valamennyi alábbi hibák, megkaptam a kívánt hatást, ResultParser tényleg kezdett a végén 5, ami azt jelenti, hogy az összes adatot olvasni. De szembe egy másik probléma - a mezők nem minden orosz nyelvű leveleket, ahogy kellene, és valószínűleg egy másik kódolást. Ennek megfelelően, felmerül a kérdés: hogyan kell olvasni az adatokat a file stream wfstream a UnicodeString típusú objektum halad a mankót és az egyéb kapcsolódó látszólag neki egy hibát?
meghatározott október 24 '13 at 18:27
@VladD, igen, van. Tény, hogy beszélünk az a tény, hogy a jármű scanf ( "% S [^ *]". És szükség van (mint @strol válasz) scanf ( "% [^ *]." Azaz% [. És . nincs% s [IMHO ezt az alapvető -. A zavar, c scanf (, "" FSP. vagy scanf ( "", FSP [0]. // nem lesz figyelmeztetés, de gcc elő a megfelelő kódot, vagy scanf (, FSP látszólagos fordító (ebben a kontextusban) minden értelemben. „” -... Avp október 25 '13 at 11:53
@strol, sőt, ha az orosz betűk, hogy töltse ki az UTF-8, megadhatja a területi en_US.UTF-8 és lesznek képviselve. De még ha figyelmen kívül hagyjuk az orosz betűk és wchar, a fő hiba a jármű csak scanf formátumban. - ha írsz a választ, ez nem csak a kódot a hajtás, és a szavak, és mondja az ember, hogy mit kell tennie. - AVP október 25 '13 at 12:36