나는 변수로 이렇게 선언 : sc_bigint < 88> XSystemC with C++ - sc_bigint 변수를 인쇄하는 방법은 무엇입니까?
나는 파일로 인쇄 할 수는 fprintf를 사용하기를 원하지만이 오류가 발생합니다. cout을 사용하여 변수를 인쇄 할 수 있지만 열어 본 특정 파일에 인쇄해야합니다.
아이디어가 있습니까? 아마도 내가 필요한 파일로 cout을 리디렉션하는 간단한 방법일까요?
나는 변수로 이렇게 선언 : sc_bigint < 88> XSystemC with C++ - sc_bigint 변수를 인쇄하는 방법은 무엇입니까?
나는 파일로 인쇄 할 수는 fprintf를 사용하기를 원하지만이 오류가 발생합니다. cout을 사용하여 변수를 인쇄 할 수 있지만 열어 본 특정 파일에 인쇄해야합니다.
아이디어가 있습니까? 아마도 내가 필요한 파일로 cout을 리디렉션하는 간단한 방법일까요?
C++에서 제공하는 파일 입출력 스트림을 사용해보십시오. 사용
#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;
C++의 스트림 기반 IO (다른 답변에서와 같이) 당신이 정말로 당신이 sc_dt::sc_bigint<W>::to_string()
방법을 사용할 수있는 옵션이, fprintf()
을 사용하려는 경우, 그러나, 아마 가장 좋은 방법입니다. 예를 들어 :
x = 154742504910672534362390527 (decimal)
x = 0x7fffffffffffffffffffff (hexadecimal)
:
#include <systemc>
#include <cstdio>
using namespace std;
int sc_main(int argc, char **argv) {
FILE *fp = fopen("sc_bigint.txt", "w");
sc_dt::sc_bigint<88> x("0x7fffffffffffffffffffff"); // (2 ** 87) - 1
fprintf(fp, "x = %s (decimal)\n", x.to_string().c_str());
fprintf(fp, "x = %s (hexadecimal)\n", x.to_string(sc_dt::SC_HEX).c_str());
return EXIT_SUCCESS;
}
위의 SystemC 프로그램은 파일 sc_bigint.txt
에 다음을 기록