我尝试通过以下代码将数字转换为字符串:
#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);
^
这部分代码的目的是将数字转换为字符串,稍后我将能够将其写入文件或将其用作文件名,因此如果您有其他想法如何以另一种方式完成它,它也会有所帮助。
谁能帮帮我?谢谢!
1条答案
按热度按时间dfddblmv1#
这些是特定于供应商的不可移植功能,用于特定的专有操作系统。不要用它们。
相反,看看标准化的,因此可移植的,来自
<string>
头部的std::to_string
: