Следующий код
#include <systemc.h>
#include <fstream>
#include <string>
#include <iostream>
int sc_main( int argc, char *argv[] ){
std::ifstream in_file;
std::string line;
in_file.open( "ex3_2.dat", ios::in );
while( getline( in_file, line ) ){
sc_uint<29> x = line.c_str();
std::cout << "0x" << std::hex << x << '\n';
}
return 0;
}
с файлом ex3_2.dat
0x1234
5
6
7
8
, скомпилированным со следующим
g++ -std=c++11 -Wall -o main.o main.cpp -lsystemc
, производит
0x00001234
0x00000005
0x00000006
0x00000007
0x00000008
g ++ --version = g ++ (GCC) 7.1.0
Нет предупреждений или ошибок компилятора.Вывод таков, что сам код в порядке.Возможно, ищите ошибки в другом месте, какие версии библиотеки std связаны и т. Д. Скрытые символы в файле?ASCII против UTF-8?Слишком много возможностей сузить это отсюда.