logo

C++'da std::stol işlevi

Bu yazıda C++'daki std::stol fonksiyonunu sözdizimi ve örnekleriyle öğreneceksiniz.

std::stol() nedir?

Standart Şablon Kitaplığı (STL) C++'da şunları içerir: std::stol() dönüştürmek için özel olarak yapılmış işlev uzun tam sayılara yönelik dizeler . Bu işlev özellikle kullanıcı girişiyle çalışırken veya girişin genellikle dize biçiminde verildiği harici kaynaklardan veri okurken faydalıdır. Giriş olarak bir dize aldıktan sonra eşdeğer uzun tamsayıyı döndürür. Dönüştürme mümkün değilse veya giriş dizesi geçerli bir sayının parçası olmayan karakterler içeriyorsa std::invalid_argument veya std::out_of_range türünde bir istisna oluşturulur.

tarihi dizeye dönüştür

Sözdizimi:

Aşağıdaki sözdizimine sahiptir:

long std::stol(const std::string& str, size_t* konum = 0, int base = 10);

cadde: Uzun bir tamsayıya dönüştürülmesi gereken metin.

Poz: Size_t nesnesine işaretçi olarak depolanan, dizenin dönüştürülmemiş ilk karakterinin dizini. Gerekli değilse bu isteğe bağlı parametre nullptr olarak ayarlanabilir.

temel: Dönüşümün sayısal tabanı. On varsayılandır.

Geri dönüş değeri: Giriş dizesinden ayrıştırılan sayısal değer, işlev tarafından uzun bir tamsayı olarak döndürülür.

İstisnalar: Dönüştürme tamamlanamazsa veya giriş dizesindeki karakterler geçersizse işlev bir istisna atar. Hiçbir dönüştürme yapılamadıysa olası istisnalar şunlardır: std::geçersiz_argument Ve std::aralığın_dışında dönüştürülen değer uzun bir süre için temsil edilebilir aralıktan büyükse.

Kullanım Durumları:

    Kullanıcılar Tarafından Giriş İşleme:

std::stol() kullanıcılardan dize biçiminde alınan sayısal girdinin daha fazla işlenebilmesi için sayısal bir türe dönüştürülmesi için kullanışlıdır.

    Giriş/Çıkış Dosyası:

Verilerin temsili olarak dizeler içeren dosyalardaki sayısal verileri okumak.

    Veri doğrulama:

Veri doğrulama, kullanıcı girişlerinin uzun sayıları doğrulayarak ve doğrulayarak doğru şekilde temsil ettiğinin teyit edilmesini içerir.

Örnek Program 1:

kullanımını göstermek için bir örnek verelim std::çalma işlevi C++'da.

 #include #include int main() { std::string numStr = '12345'; try { long result = std::stol(numStr); std::cout << 'Converted value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Invalid argument: ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Out of range: ' << e.what() << std::endl; } return 0; } 

Çıktı:

C++'da std::stol işlevi

Açıklama:

    Başlatma:
    • Bir dize değişkeni adı verildi sayıStr programın başında '12345' değeriyle başlatılır.
    Block'u deneyin:
    • Kod, try bloğuna hareket ederek, içindeki ifadeleri çalıştırmaya çalışacağının sinyalini verir. Burada olası istisnalar ele alınmaktadır.
    Dönüşüm Denemesi:
    • Program kullanmaya çalışıyor std::stol() numStr dizesini try bloğu içinde uzun bir tamsayıya dönüştürmek için.
    Etkili Dönüşüm:
    • Dönüşüm başarılı olursa sonuç değişken sonuçta tutulur.
    Çıktı Dönüştürülen Değer:
    • Başarıyla dönüştürülen sayı daha sonra program tarafından standart çıktıya yazdırılır.
    İstisnaların Tedavisi:
    • Catch bloklarından biri, dönüştürme sırasında ortaya çıkan istisnaları ele alır.
    Geçersiz Argüman Yakalama İstisnası:
    • İstisna std::invalid_argument türündeyse, argümanın geçersiz olduğunu belirten bir hata mesajı yazdırılır.
    Menzil Dışında Yakalama İstisnası:
    • İstisna std::out_of_range türündeyse, dönüştürme sonucunun geçerli aralığın dışında olduğunu belirten bir hata mesajı yazdırılır.
    İade politikasi:
    • Program işletim sistemine başarılı yürütmeyi ifade eden 0 değerini döndürür ve ana işlev sona erer.

Kısaca, kod şunu kullanmaya çalışır: std::stol() '12345' dizesini uzun bir tamsayıya dönüştürmek için try bloğunun içindeki işlev. Dönüştürme başarılı olursa sonuç yazdırılır. İstisnaları yakalar ve ortaya çıkması durumunda (yanlış bir argüman nedeniyle veya sonucun aralık dışında olması nedeniyle) ilgili hata mesajını yazdırır.

Son olarak program, başarıyla tamamlandığını gösteren 0 değerini döndürür.

Örnek Program 2:

kullanımını göstermek için başka bir örnek verelim std::çalma işlevi C++'da.

 #include #include int main() { std::cout << 'Enter numeric strings to convert to long integers (type 'exit' to end):
'; while (true) { std::string userInput; std::cout <> userInput; if (userInput == 'exit') { std::cout << 'Exiting program. Goodbye!
'; break; } try { long result = std::stol(userInput); std::cout << 'Converted Value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Error: Invalid argument in input '' << userInput << '': ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Error: Out of range for input '' << userInput << '': ' << e.what() << std::endl; } } return 0; } 

Çıktı:

abs c kodu
C++'da std::stol işlevi

Açıklama :

  • Bu örnekte kullanıcıdan dönüştürülecek dize değerlerini girmesi istenir.
  • Uygulama, kullanıcı girişi yapana kadar kullanıcı girişini kabul etmeye devam edecektir 'çıkış' bir süre döngüsü kullanarak.
  • Std::cin Kullanıcı girişini okumak için döngü içinde kullanılır.
  • Giriliyor 'çıkış' bu programın bir veda mesajı yazdırmasına ve döngüyü sonlandırmasına neden olur.
  • Değilse, kullanmaya çalışır std::çaldı girişi uzun bir değere dönüştürmek için.
  • Dönüştürme başarılı olursa dönüştürülen değer yazdırılır.
  • İstisnaları yakalar (geçersiz argümanlar, aralık dışı), bir hata mesajı yazdırır ve devam eder.
  • Yeni kullanıcı girdisini beklerken döngü bir sonraki yinelemeye geçer.