我的电脑不支持C++ 11,所以我不能用C++ 11连接字符串和整数,我想知道是否有办法解决这个问题。std::string to_string
我想让ROOT程序中的C++部分通过循环读取所有文件,并通过ifstream从每个文件中读取三列。
int N= ;
for (i=1; i<=N; i++){
ending = ".dat";
name0 = "pulse_value";
ostringstream temp;
temp << i;
str = temp.str();
input = name0 + str + ending;
ifstream get(input);
for (int j=0; j<N4; j++){
time[j]=0.;
energy[j]=0.;
current[j]=0.;
get >>time[j]>>energy[j]>>current[j];
}
}
但是,它给我的是.NET语言,而不是.NET语言,我想让C++部分在ROOT程序中通过循环读取所有文件,并从每个文件中通过ifstream读取三列。
Can't call basic_ifstream<char,char_traits<char> >::basic_ifstream<char,char_traits<char> >(input).
basic_ifstream<char,char_traits<char> > basic_ifstream<char,char_traits<char>>::basic_ifstream<char,char_traits<char> >(void);
NB:我是一个最近使用C++的用户.先谢谢你。
ifstream get(input);
也是C++11-主义。在C++11之前,你不能使用 std::string
作为对 std::ifstream
构造函数。它只接受文件名作为一个指向null-terminal的 char
阵列。
ifstream get(input.c_str());// c_str provides a null-terminated character array
但是由于你必须要拉出 stringstream
的数字,你不妨全身心地投入,用上 stringstream
来格式化整个文件名。
ostringstream temp;
temp << "pulse_value" << i << ".dat";
ifstream get(temp.str().c_str());