mam parsowania ciąg (a char*
) i używam sscanf
do analizowania liczb z ciągu znaków w deblu, w taki sposób:Uzyskaj liczbę znaków przeczytanych przez sscanf?
// char* expression;
double value = 0;
sscanf(expression, "%lf", &value);
Działa to doskonale, ale ja wtedy chciał kontynuować podczas analizowania sznur przez konwencjonalne środki. Muszę wiedzieć, ile znaków zostało przeanalizowanych przez sscanf
, aby móc wznowić moje ręczne analizowanie z nowego offsetu.
Oczywiście, najprostszym sposobem byłoby jakoś obliczyć liczbę znaków, które sscanf
analizuje, ale jeśli nie ma prosty sposób, aby to zrobić, ja am otwarty do alternatywnych opcji podwójnych analizowania. Jednak obecnie używam sscanf
, ponieważ jest szybki, prosty i czytelny. Tak czy inaczej, po prostu potrzebuję sposobu, aby ocenić podwójne i kontynuować przetwarzanie po nim.
Nie mogę sprawić, aby działał on w ramach [implementacji Microsoft] (https://msdn.microsoft.com/en-us/library/t6z7bya3.aspx?f=255&MSPPError=-2147217396) jako takiej: ' sscanf_s (p, "% s% d \ n% n", toString, (int) _countof (toString) i itemCount, &pos); '' pos' nie wydaje się zmieniać w ogóle. – c00000fd