paule22 Geschrieben 18. Januar 2002 Geschrieben 18. Januar 2002 warum kann folgender Code nicht richtig im C++ Builder compiliert werden??? Es tretten immer wieder Fehler auf, wenn ein File-Stream geöffnet werden soll auf //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <istream.h> #include <fstream.h> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { SIZE z; // hier, kann nicht compiliert werden ... ostream out("test",ios_base::in|ios_base::out); cout << "test"; GetTextExtentPoint32( GetDC(Edit1->Handle), Edit1->Text.c_str(), strlen(Edit1->Text.c_str()), &z); Label1->Caption = z.cx; Label2->Caption = z.cy; } //--------------------------------------------------------------------------- es kommt immer die Fehlermeldung: [C++ Error] Unit1.cpp(24): E2285 Could not find a match for 'ostream::basic_ostream(char *,int)'. [C++ Warning] Unit1.cpp(36): W8004 'out' is assigned a value that is never used.:confused: :confused: :confused: :confused:
Klotzkopp Geschrieben 21. Januar 2002 Geschrieben 21. Januar 2002 Original geschrieben von paule22 [schnipp] Es tretten immer wieder Fehler auf, wenn ein File-Stream geöffnet werden soll auf [schnapp] ostream out("test",ios_base::in|ios_base::out); [schnipp] ostream ist kein Filestream. Nimm ofstream.
dirk12345 Geschrieben 21. Januar 2002 Geschrieben 21. Januar 2002 da mein Problem, denke ich ganz gut zudem Thema passt, poste ich es mal hier rein.Ich habe eine Funktion, in der möchte ich eine textdatei, zeilenweise auslesen, die Funktion schaut so aus: ----------------------------------- void SNMPSystem::get_SNMPSystem(void) { SNMPSystem ss; int pos,position, zaehler,bedingung; ifstream einlesen("/home/dirk/mysnmp/cpp_snmp/snmp.conf"); if (!einlesen) { cerr << "Fehler: Datei kann nicht geoeffnet werden!\n"; } while(!einlesen.eof()) { einlesen.getline(ss.zeile,250); cout << "\n" << ss.zeile; } } ------------------------------------------------- beim ausführen des Programms bricht es aber immer an folgender Stelle ab mit einem "Speicherzugriffsfehler": einlesen.getline(ss.zeile,250); Wieso? ss.zeile, ist ein char-pointer der Klasse "SNMPSystem"!
dirk12345 Geschrieben 21. Januar 2002 Geschrieben 21. Januar 2002 hat ich erledigt.........."zeile" war vom Typ "char", wenn ich nen string draus mach gehts...
Klotzkopp Geschrieben 21. Januar 2002 Geschrieben 21. Januar 2002 @dirk12345: Jetzt muss ich aber doch mal fragen, warum in aller Welt Du in einer Member-Funktion Deiner Klasse eine weitere Instanz der Klasse erzeugst, nur um auf den zeile-Member zuzugreifen. Warum nimmst Du nicht den zeile-Member der Instanz, zu der die Funktion gehört?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden