以txt格式存储的输入文件有点像:
data1 : 15 16 20 23 56
data2 : 15 65 89 64 65
所以,我将每一行提取成字符串格式为单独的文件,如下所示
宏定义:
#define STRINGIFY_INIT(x) #x
#define STRINGIFY(x) STRINGIFY_INIT(x)
#define FILE_PREFIX data
#define FILE_EXT .txt
#define CONCAT_FILE(a) STRINGIFY(FILE_PREFIX) STRINGIFY(a) STRINGIFY(FILE_EXT)
代码启动如下:
std::string line;
std::ifstream readfile;
readfile.open("read.txt");
while(getline(readfile,line)){
int x = 1;
std::ofstream outputFile( CONCAT_FILE(x) );
outputFile << line <<std::endl;
std::cout<<line<<std::endl;
x++;
}
现在,此代码创建名为&#34; datax.txt&#34;的文件。并且在文本文件中,它是输入文件中最后提取的数据.i.e,
data2 : 15 65 89 64 65
但是,我的要求是创建名为data1.txt和data2.txt的2个文件,因为原始输入文件中存在2行数据。
我遇到的问题在于:
std::ofstream outputFile( CONCAT_FILE(x) );
表达式&#34; CONCAT_FILE(x)&#34;,没有取x的值,但它只是取ASCII字符&#34; x&#34; .So,一个带有名字的文件&#34; datax.txt&#34;已创建,而不是&#34; data1.txt&#34;,&#34; data2.txt&#34;。
我希望在第一次迭代时使用CONCAT_FILE(1),在下一次迭代时使用CONCAT_FILE(2),这样2个文件&#34; data1.txt&#34;,&#34; data2.txt&# 34;是创造的。
任何人都可以帮助我。
我需要创建2个单独的文件,这样我才能分别只读取整数值并想要计算每个文件的均值。
请做必要的。 谢谢,