C++ 带c+的SystemC+;-如何打印sc_bigint变量?

C++ 带c+的SystemC+;-如何打印sc_bigint变量?,c++,bigint,systemc,C++,Bigint,Systemc,我有一个变量声明为: sc_bigint x 我想使用fprintf将其打印到文件中,但这会产生错误。 我可以使用cout打印变量,但我需要将其打印到已打开的特定文件中 有什么办法吗? 也许是一个简单的方法来重定向CUT到我需要的文件? < P>尝试C++提供的文件I/O流。 #include <fstream> #include <iostream> using namespace std; // .. snip // open a file in write mo

我有一个变量声明为: sc_bigint x

我想使用fprintf将其打印到文件中,但这会产生错误。 我可以使用cout打印变量,但我需要将其打印到已打开的特定文件中

有什么办法吗?
也许是一个简单的方法来重定向CUT到我需要的文件?

< P>尝试C++提供的文件I/O流。
#include <fstream>
#include <iostream>
using namespace std;

// .. snip

// open a file in write mode.
ofstream outfile;
outfile.open("afile.dat");

sc_bigint<88> x;
outfile << x;
#包括
#包括
使用名称空间std;
// .. 剪
//以写模式打开文件。
出流孔的直径;
输出文件打开(“文件日期”);
sc_bigint x;

outfile使用C++基于流的IO(如另一个答案所示)可能是最好的方法,但是,如果您真的想使用
fprintf()
,那么您可以选择使用
sc\u dt::sc\u bigint::to\u string()
方法。例如:

#包括
#包括
使用名称空间std;
int sc_main(int argc,字符**argv){
文件*fp=fopen(“sc_bigint.txt”,“w”);
sc_dt::sc_bigint x(“0x7fffffffffffffffffffff”);/(2**87)-1
fprintf(fp,“x=%s(十进制)\n”,x.to_string().c_str());
fprintf(fp,“x=%s(十六进制)\n”,x.to_字符串(sc_dt::sc_HEX).c_str());
返回退出成功;
}
上述SystemC程序将以下内容写入文件
sc_bigint.txt

x=154742504910672534362390527(十进制)
x=0x7FFFFFFFFFFFFFFFFFFF(十六进制)