J'utilise getline lire jusqu'à la fin de saut de ligne, mais C++ getline me fait des choses jusqu'à ce que l'espace,getline en C++ - Besoin d'aide
J'ai txt les données du fichier en tant que
adresse (onglet char) 1420 Heureux Lane
Quand je
getline (lecteur, ss, '\ t') Je reçois l'adresse dans la chaîne de l'art. quand je fais getline (lecteur, ss, '\ n') je viens d'obtenir 1420.
Je veux complet "1420 Happy Lane", Comment l'obtenir?
Merci.
#include <fstream>
#include <string>
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
int main(int argc, char *argv[])
{
if(argc < 2)
{
cout << "Missing filename as first argument" << "\n";
exit(2);
}
vector<string> myvector;
string ss;
int i=0, j=0;
ifstream reader(argv[1]);
if (! reader)
{
cout << "Error opening input file : " << " " << argv[1] << '\n';
return -1;
}
while(!reader.eof())
{
if ((i+1) % 2 == 0)
getline(reader, ss, '\n');
else
getline(reader, ss, '\t');
if (ss[0] == '#')
{
//Skip
getline(reader,ss, '\n');i=0;
continue;
}
i++;
myvector.push_back(ss);
}
reader.close();
vector<string>::iterator it;
stringstream stream;
int vecloc=1;
string tag;
string sData;
cout << "myvector contains: \n";
for (it=myvector.begin() ; it < myvector.end(); it++)
{
switch (vecloc)
{
case 1: stream << *it; stream >> tag; vecloc++;break;
case 2:
stream << *it; stream >> sData;
// Do job
cout << tag << " " << sData << "\n";
// Reset.
vecloc=1; break;
default : break;
}
// Clear String stream
stream.str(""); stream.clear();
}
return(0);
}
sortie
/home/sr/UTL
chat abc.txt
hey C++ me faire des noix.
/home/sr/UTL
a.out abc.txt
myVector contient:
hey C++
Non ne fonctionne pas pour moi, j'ai utilisé xlC pour compiler, mon programme et utilisé l'éditeur vi pour entrer le fichier texte approprié. – user79292
Nevermind Je pense que mon code bas de la ligne utilise stringstream et c'est le coupable. – user79292
@ user79292: Correct, c'est 'stream >> sData;' en faute. –