Guten Abend,
ich habe ein Problem mit folgendem Code:
Die Idee dahinter ist es, Werte in einem Vector zu speichern, diese in eine Datei zu schreiben, daraus heraus zu lesen und dann die Werte ausgeben zu lassen. Da dies mit mehreren verschiedenen Datentypen gehen soll, habe ich es über ein template und der STL realisiert.
Der Debugger gibt mir jetzt folgende Fehlermeldung:
./stl.cpp:34:10: error: expected ';' before 'f'
./stl.cpp:35:2: error: 'f' was not declared in this scope
./stl.cpp:35:19: error: 'ios' has not been declared
./stl.cpp:37:3: error: 'infile' was not declared in this scope
./stl.cpp:37:14: error: expected primary-expression before '.' token
Anscheinend erkennt er nicht, dass ich meine fstream f genannt habe und damit innerhalb read und write arbeiten will., was mir auch die anderen Fehlermeldungen zeigen (f not in scope).
Ich freue mich über jeden Hinweis, wo das Problem liegt.
Danke im voraus,
Sebastian
ich habe ein Problem mit folgendem Code:
Code:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <list>
#include <string>
template <class T> void printme(const T& t)
{
std::cout << t << " ";
}
template <class T> void write(const T& t, std::string dataname)
{
fstream f;
f.open(dataname, ios::out);
for (int i = 0; i <= t.size()-1; i++){
outfile << T.at(i) << endl;
}
f.close;
}
template <class T> void read(const T& t, std::string dataname)
{
fstream f;
f.open(dataname, ios::in);
for (int i = 0; i <= t.size()-1; i++){
infile >> T.at(i);
}
f.close;
}
int main()
{
// Vektoren erstellen
std::vector<std::string> strings;
strings.push_back("Hello");
strings.push_back("STL");
strings.push_back("World");
std::list<float> numbers;
numbers.push_back(1.618f);
numbers.push_back(2.718f);
numbers.push_back(3.141f);
// Dateiname angeben
std::string filename_strings = "file_strings.dat";
std::string filename_numbers = "file_numbers.dat";
// Aufrufe write
write(strings, filename_strings);
write(numbers, filename_numbers);
std::list<std::string> strings2;
std::vector<float> numbers2;
// Aufrufe load
read(strings2, filename_strings);
read(numbers2, filename_numbers);
for_each(strings2.begin(), strings2.end(), printme<std::string>);
std::cout << '\n';
for_each(numbers2.begin(), numbers2.end(), printme<float>);
std::cout << std::endl;
return 0;
}
Die Idee dahinter ist es, Werte in einem Vector zu speichern, diese in eine Datei zu schreiben, daraus heraus zu lesen und dann die Werte ausgeben zu lassen. Da dies mit mehreren verschiedenen Datentypen gehen soll, habe ich es über ein template und der STL realisiert.
Der Debugger gibt mir jetzt folgende Fehlermeldung:
./stl.cpp:34:10: error: expected ';' before 'f'
./stl.cpp:35:2: error: 'f' was not declared in this scope
./stl.cpp:35:19: error: 'ios' has not been declared
./stl.cpp:37:3: error: 'infile' was not declared in this scope
./stl.cpp:37:14: error: expected primary-expression before '.' token
Anscheinend erkennt er nicht, dass ich meine fstream f genannt habe und damit innerhalb read und write arbeiten will., was mir auch die anderen Fehlermeldungen zeigen (f not in scope).
Ich freue mich über jeden Hinweis, wo das Problem liegt.
Danke im voraus,
Sebastian