Comment puis-je lire les données à partir d'un fichier si mon dossier est comme celui-ci avec des valeurs séparées par des virgulesComment lire-écrire dans/à partir du fichier texte avec des valeurs séparées par des virgules
1, 2, 3, 4, 5\n
6, 7, 8, 9, 10\n
\n
et après avoir lu le fichier, je veux pour écrire les données dans un autre fichier comme le même format ci-dessus.
Je peux obtenir le nombre total de lignes, en utilisant
string line;
while(!file.eof()){
getline(file,line);
numlines++;
}
numline--; // remove the last empty line
mais comment puis-je savoir le nombre total de chiffres dans une rangée/ligne ?? J'ai aussi un vecteur d'ints pour stocker les données. Donc, je veux lire la première ligne et ensuite compter le nombre total d'éléments dans cette ligne, ici 5 (1,2,3,4,5) et les stocker dans array/vector, et lire la ligne suivante et les stocker dans vecteur encore et ainsi de suite jusqu'à ce que j'atteigne EOF.
Ensuite, je veux écrire les données dans un fichier, encore une fois, je suppose que cela fera le travail d'écriture des données dans un fichier,
numOfCols=1;
for(int i = 0; i < vector.size(); i++)
{
file << vector.at(i);
if((numOfCols<5) file << ",";//print comma (,)
if((i+1)%5==0)
{
file << endl;//print newline after 5th value
numOfCols=1;//start from column 1 again, for the next line
}
numOfCols++;
}
file << endl;// last new line
Donc, mon principal problème est de savoir comment lire les données à partir du fichier avec des valeurs séparées par des virgules ??
Merci
Qu'est-ce que cela fait? std :: stringstream lignestream (ligne); – Curious
Il crée un objet de flux de chaîne. Il agit comme un flux, comme std :: cin, std :: cout ou un flux de fichier std :: fstream, mais utilise une chaîne comme source des données. Donc, en effet, c'est un flux d'une seule ligne. –
Lorsque j'essaie de compiler, j'obtiens cette erreur, la variable 'std :: stringstream linestream 'a un initialiseur mais un type incomplet. J'ai inclus tous les en-têtes requis. – Curious