donc j'ai un fichier data3.txt qui ressemble essentiellement comme ceci:sstream en utilisant l'entrée et le fichier de sortie
#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
Et je veux prendre les 3 premières colonnes à écrire dans un nouveau fichier en utilisant stringtreams
#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();
}
}
mais je mon fichier de sortie a l'air méchant:
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
Je ne sais pas d'où vient zéros viennent, un nd si je mets l'ofstream en dehors de la boucle while alors il imprimera seulement la dernière ligne de données
Les zéros semblent provenir des lignes de commentaires, mais je ne sais pas pourquoi les lignes sont répétées –