ifstream und MSVC++2005
-
Hi !
Wieso will dieses kleine Teilprogramm unter MSVC++2005 nicht kompilieren?? Jeder andere Compiler schluckt das ohne zu meckern .....
#include <fstream> //... int _tmain(int argc, _TCHAR* argv[]) { std::string filename ; // ... ifstream f (filename.c_str(), ios::binary) ; }Das Compilen liefert folgenden 2 Probleme:
error C2079: 'f' uses undefined class 'std::basic_ifstream<_Elem,_Traits>' error C2078: too many initializersjeder andere Compiler kommt mit dem obigen ohne probleme klar.
Ich weiss zwar dass der Fehler Nr1 eigentlich der eigentliche prototyp der klasse ifstream nämlich basic_ifstream ist ... Nur werden ifstreams in programmen nicht immer so verwendet wie ich es habe?bin für jeden vorschlag dankbar,
cya Prophecy
-
Jo .. du weißt wo der Fehler liegt ... bist nen Held ^^
#include <string>fehlt.
=>
#include <fstream> #include <string> int main() { std::cout << "Filename: " << std::flush; std::string string_filename; std::getline(std::cin, string_filename); std::ifstream file_stream(string_filename.c_str(), std::ios::in | std::ios::binary); if (!file_stream) return -1; file_stream.close(); return 0; }
-
ähm, ne das hats nicht besser gemacht

Die beiden fehler sind immer noch dieselben wie vorhin ^^Edit: das std:: bei filestream, ios usw habe ich vergessen, im code stehts schon ...

-
tjo dann ist der Fehler an ner anderen Stelle ... der Code ist so korrekt (wie ich ign gepostet habe!) ...
-
(D)Evil schrieb:
tjo dann ist der Fehler an ner anderen Stelle ... der Code ist so korrekt (wie ich ign gepostet habe!) ...
Nein, du hast iostream vergessen

#include <fstream> #include <string> #include <iostream> int main() { std::cout << "Filename: " << std::flush; std::string string_filename; std::getline(std::cin, string_filename); std::ifstream file_stream(string_filename.c_str(), std::ios::in | std::ios::binary); if (!file_stream) return -1; file_stream.close(); return 0; }Läuft unter Microsoft Visual Studio 2005 Standard Edition...
-
selbst, wenn ich nur das da laufen lasse, bekomm ich dieselben fehler
#include "stdafx.h" #include <fstream> #include <string> int _tmain(int argc, _TCHAR* argv[]) { std::ifstream f ("lol.txt", std::ios::binary) ; return 0 ; }die "stdafx.h" ist die std-gefertigte von MSVC++ die ich nicht editiert habe (bislang zumindest)
-
Oh stimmt ... hatte es nicht Compiliert ^^
-
Prophecy666 schrieb:
selbst, wenn ich nur das da laufen lasse, bekomm ich dieselben fehler
#include "stdafx.h" #include <fstream> #include <string> int _tmain(int argc, _TCHAR* argv[]) { std::ifstream f ("lol.txt", std::ios::binary) ; return 0 ; }die "stdafx.h" ist die std-gefertigte von MSVC++ die ich nicht editiert habe (bislang zumindest)
//#include "stdafx.h" // Hab ich NIE gebraucht. Ich mache immer leeres Projekt erstellen ;) #include <fstream> #include <string> #include <tchar.h> // <---------------------------- int _tmain(int argc, _TCHAR* argv[]) { std::ifstream f ("lol.txt", std::ios::binary) ; return 0 ; }
-
omg ... ein leeres projekt zu erstellen hat den fehler tatsächlich behoben

Vielen dank