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: Zitieren
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. Zitieren
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"! Zitieren
dirk12345 Geschrieben 21. Januar 2002 Geschrieben 21. Januar 2002 hat ich erledigt.........."zeile" war vom Typ "char", wenn ich nen string draus mach gehts... Zitieren
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? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.