如何在Linux中使用_ultoa_s和_gcvt_s(使用C++)?

7dl7o3gd  于 2023-05-16  发布在  Linux
关注(0)|答案(1)|浏览(167)

我尝试通过以下代码将数字转换为字符串:

#include <iostream>

using namespace std;

int main()
{
    unsigned short a(3);
    float b(233.233);
    char a_string[100];
    char b_string[100];

    _ultoa_s(a,a_string,sizeof(a_string),10);
    _gcvt_s(b_string,sizeof(b_string),b,8);

    cout << a_string << endl;
    cout << b_string << endl;
    return 0;
}

当我使用windows时,这段代码编译并运行良好,但当我使用Linux时编译失败(我使用gcc编译器)。我收到以下错误消息:

file_5.cpp: In function ‘int main()’:
file_5.cpp:12:44: error: ‘_ultoa_s’ was not declared in this scope
     _ultoa_s(a,a_string,sizeof(a_string),10);
                                            ^
file_5.cpp:13:42: error: ‘_gcvt_s’ was not declared in this scope
     _gcvt_s(b_string,sizeof(b_string),b,8);
                                          ^

这部分代码的目的是将数字转换为字符串,稍后我将能够将其写入文件或将其用作文件名,因此如果您有其他想法如何以另一种方式完成它,它也会有所帮助。
谁能帮帮我?谢谢!

dfddblmv

dfddblmv1#

这些是特定于供应商的不可移植功能,用于特定的专有操作系统。不要用它们。
相反,看看标准化的,因此可移植的,来自<string>头部的std::to_string

unsigned short const a = 3;
    float const b = 233.233;
    std::string const a_string = std::to_string(a);
    std::string const b_string = std::to_string(b);

相关问题