olarak http://ideone.com/RdINqa yılında, std::stoul
negatif sayılar için bir std::out_of_range
atmaz gösterilen ancak etrafında onları saran. Bu neden? Görünüşe göre -4, unsigned long
türünün menzili dışında kalıyor.std :: stoul neden negatif sayıları dönüştürüyor?
10
A
cevap
10
21,5 Sayısal dönüşümleri
unsigned long stoul(const string& str, size_t *idx = 0, int base = 10);
Effects
: Varsa ... call [s]strtoul(str.c_str(), ptr, base)
..., dönüştürülen sonuç döndürür.Atar: ... Dönüştürülen değer, döndürme türü için verilebilir değerler aralığının dışındaysa
out_of_range
.
"Dönüşümle değer" Burada strtoul
tarafından döndürülen değerdir. Elbette unsigned long
türünde olan ve bu nedenle(unsigned long
) numaralı döndürme türüne ilişkin verilebilir değerler aralığının dışında olamaz. o int
döner ama long
döndürür strtol
kullanması nedeniyle
Bildiğim kadarıyla söyleyebilirim, sadece stoi
, out_of_range
atabilir.
Ayrıca, yolu C standart onu dize "-4"
kabul edip -(unsigned long)4
eşit bir değer döndürmek için gereklidir, strtoul
belirtir. Neden bu şekilde belirtiliyor, bilmiyorum.
İlgili konular
- 1. mysql negatif sayıları önler
- 2. std :: string'i basic_ostream'ye dönüştürüyor musunuz?
- 3. Varyasyonum neden bir std :: string'i bir boole dönüştürüyor?
- 4. Python'da tüm negatif sayıları sıfıra nasıl değiştiririm?
- 5. Dizelerdeki onaltılık sayıları negatif sayılara dönüştürme, Perl
- 6. Std :: vektörü bir negatif indeksle indeksleme
- 7. ConfigurationManager.AppSettings, "\ n" değerini "\\ n" olarak dönüştürüyor neden?
- 8. Sayım sayıları
- 9. haskell negatif ondalık sayılar
- 10. Neden std :: mutex, CRITICAL_SECTION
- 11. Neden std :: protect yok?
- 12. Neden std :: is_same
- 13. Neden ADL, std :: get
- 14. Neden std :: forward kullanmıyorsunuz?
- 15. `std` modülü neden silinemedi?
- 16. c neden bu bir negatif sayı yazdırıyor?
- 17. Bu durumda neden negatif kenar boşluğu gereksinimi
- 18. getBlob() dosyaları pdf'ye dönüştürüyor
- 19. HTML2Kanvas taşan içeriği dönüştürüyor
- 20. std :: move neden RVO'yu engeller?
- 21. Hikari bağlantıları nasıl geri dönüştürüyor?
- 22. Neden numpy std() matlab std() öğesine farklı bir sonuç verir?
- 23. std :: copy_n neden std :: size_t yerine bir şablon parametresi alıyor?
- 24. İşaretçi typedef neden std :: vector :: data()? std :: vektör API olarak
- 25. Sıralanan vektör negatif için pozitif
- 26. Neden bir negatif değeri değişmez ile değiştirerek [-Wshift-negatif-değeri] uyarısı veriyor
- 27. Negatif marjı
- 28. Crystal Raporları, sayıyı metne dönüştürüyor
- 29. ruby rayları param dizilimine dönüştürüyor
- 30. mySQL, varchar'ı şu tarihe dönüştürüyor
teşekkürler, bu sinir bozucu – Kal