溫馨提示×

如何在c++中使用strtoll轉(zhuǎn)換失敗

c++
小樊
83
2024-09-15 16:19:21
欄目: 編程語言

在C++中,strtoll函數(shù)用于將字符串轉(zhuǎn)換為長整型(long long

  1. 包含頭文件 <cstdlib>。
  2. 使用 strtoll 函數(shù)并檢查返回值和錯誤指示器。
  3. 如果轉(zhuǎn)換失敗,處理錯誤。

以下是一個簡單的示例:

#include<iostream>
#include <cstdlib>
#include <cerrno>

int main() {
    const char* str = "not_a_number"; // 輸入字符串
    char* end; // 用于存儲 strtoll 停止解析的位置

    errno = 0; // 重置錯誤指示器
    long long result = std::strtoll(str, &end, 10);

    if (errno == ERANGE) {
        // 溢出或下溢
        std::cout << "Conversion failed: out of range"<< std::endl;
    } else if (end == str || *end != '\0') {
        // 沒有字符被解析或字符串中還有未解析的字符
        std::cout << "Conversion failed: invalid input"<< std::endl;
    } else {
        // 轉(zhuǎn)換成功
        std::cout << "Converted value: "<< result<< std::endl;
    }

    return 0;
}

這個示例會嘗試將字符串 “not_a_number” 轉(zhuǎn)換為長整型。由于這不是一個有效的數(shù)字,所以轉(zhuǎn)換會失敗,程序會輸出 “Conversion failed: invalid input”。

0