2014-12-01 5 views
1

나는 변수로 이렇게 선언 : sc_bigint < 88> XSystemC with C++ - sc_bigint 변수를 인쇄하는 방법은 무엇입니까?

나는 파일로 인쇄 할 수는 fprintf를 사용하기를 원하지만이 오류가 발생합니다. cout을 사용하여 변수를 인쇄 할 수 있지만 열어 본 특정 파일에 인쇄해야합니다.

아이디어가 있습니까? 아마도 내가 필요한 파일로 cout을 리디렉션하는 간단한 방법일까요?

답변

1

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; 
0

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에 다음을 기록