Ich bin neu in C++ und ich versuche, Zeilen aus einer Datei mit Zahlen, tokenize Linien in String-Arrays zu lesen und konvertieren diese Array-Elemente in doppelte Genauigkeitszahlen. Aber im Prozess der Tokenisierung bekomme ich diesen Fehler '' Variable 'std :: stringstream meinstream' hat Initialisierung, aber unvollständiger Typ ''. Ich habe andere Leute Vorschläge gesehen und ich möchte es tun, ohne Boost zu verwenden, und der Rest der Codes sieht ziemlich ähnlich wie meiner aus, aber ich bekomme diesen Fehler aus irgendeinem Grund. Hier ist der Code.C++ Fehler in tokenizer ‚‘ Variable ‚std :: string mystream‘ hat Initialisierung, aber unvollständigen Typ ‚‘
#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
vector<string> tokens;
string phrase="sdfs sdfs trt we rw";
stringstream mystream (phrase);
string temp;
while(getline(mystream,temp,' ')){
tokens.push_back(temp);
}
}
Es wäre wirklich nett, ein Feedback zu diesem Problem zu bekommen. Danke im Voraus.
Sie enthalten nicht die richtigen Header für [ 'std :: stringstream'] (http://en.cppreference.com/w/cpp/io/basic_stringstream). –
auf einer nicht verwandte Notiz, wenn Sie aus dem String-Stream lesen, prüfen, mit [ 'std :: istringstream'] (http://en.cppreference.com/w/cpp/io/basic_istringstream) statt, –
Schließlich Sie brauchen die Schleife übrigens nicht. Alles, was Sie brauchen, ist das Wissen von ['std :: istream_iterator'] (http://en.cppreference.com/w/cpp/iterator/istream_iterator) und den [' std :: vector' Konstruktoren] (http: // de.cppreference.com/w/cpp/container/vector/vector). Beachten Sie, dass der Vektorkonstruktor ein Paar Iteratoren verwendet? –