gpt4 book ai didi

c++ - sstream 使用输入和输出文件

转载 作者:行者123 更新时间:2023-11-30 02:59:10 25 4
gpt4 key购买 nike

<分区>

所以我有一个文件 data3.txt,它基本上是这样的:

#file:data.txt
#data inputs
1 1234 +0.2 23.89 6.21
2 132 -0.03 3.22 0.1
3 32 0.00 31.50 4.76

我想使用 stringtreams 将前 3 列写入新文件

#include <cctype>
#include <sstream>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
int main(){
string line;
float curr_price, change;
int stock_number;
ifstream fin("data3.txt");
istringstream iss;
ostringstream oss;
if(!fin){
cerr<<"Can't open a file";
}
ofstream outfile("data2.txt");
while (getline(fin,line)){
iss.clear();
iss.str(line);
iss>>stock_number>>curr_price>>change;
while(isspace(iss.peek()))
iss.ignore();
while(iss.str() == "#")
iss.ignore();
if( iss.str()==""){
break;
}
oss<<stock_number<<"\t"<<curr_price<<"\t"<<change<<"\n";
outfile<<oss.str();
}
}

但是我的输出文件看起来很糟糕:

0   0   0
0 0 0
0 0 0
0 0 0
0 0 0
1 1234 0.2
0 0 0
0 0 0
1 1234 0.2
2 132 -0.03
0 0 0
0 0 0
1 1234 0.2
2 132 -0.03
3 32 0

我不知道零是从哪里来的,如果我将 ofstream 放在 while 循环之外,那么它只会打印最后一行数据

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com