Ben bir dize (bir char*
) ayrıştırma ve ben, çiftlerde içine dize numaraları ayrıştırmak şöyle etmek sscanf
kullanıyorum:sscanf tarafından okunan karakterlerin sayısını alın?
// char* expression;
double value = 0;
sscanf(expression, "%lf", &value);
Bu harika çalışıyor, ancak o zaman ayrıştırma devam etmek istiyorum geleneksel araçlarla dize. El ile ayrıştırma işlemimi yeni ofsetten devam ettirebilmem için sscanf
tarafından kaç karakter ayrıştırıldığını bilmem gerekiyor.
Açıkçası, en kolay yolu bir şekilde karakterlerin sscanf
ayrıştırır sayısını hesaplamak için olurdu ama yapmak basit bir yolu varsa, o ben alternatif çifte ayrıştırma seçenekleri açık am. Ancak, şu anda sscanf
kullanıyorum çünkü hızlı, basit ve okunabilir. Her iki durumda da, çifliği değerlendirip sonra ayrıştırmaya devam etmenin bir yoluna ihtiyacım var.
[Microsoft uygulaması] (https://msdn.microsoft.com/en-us/library/t6z7bya3.aspx?f=255&MSPPError=-2147217396) gibi çalışmasını bu şekilde yapamıyorum. sscanf_s (p, "% s% d \ n% n", toString, (int) _countof (toString), & itemCount, &pos); "Pos" hiç değişmiyor gibi görünüyor. – c00000fd