Datei eingeben können um diese dann zu öffnen
-
@__stdcall* : Dir is klar dass in deinem beispiel für pcPfad und pcFileInhalt nur ein zeichen reserviert ist ?
Kurt
-
HI !,
denk ich net,

den ein char* ist eine Zeichenkette! bei mir funzt der Code ohne problemegruß __stdcall*
-
__stdcall* schrieb:
den ein char* ist eine Zeichenkette!
Nein, ein char* ist nur ein Zeiger auf char. Wie lang der Speicherbereich ist, der dadurch entsteht, dass die Daten hinter diesem char bis zum nächsten Nullzeichen als Zeichenkette interpretiert werden, ändert nichts daran. Du holst nur Speicher für ein Zeichen.
bei mir funzt der Code ohne probleme
Und wenn du im Kuhdorf nachts bei Rot über die Kreuzung fährst, geht das auch ohne Probleme.
-
__stdcall* schrieb:
HI !,
denk ich net,

den ein char* ist eine Zeichenkette! bei mir funzt der Code ohne problemegruß __stdcall*
Dein code
char* pcFileInhalt = new char; // reserviere 1 zeichen und gebe einen pointer darauf zurückWahrscheinlich wolltest du
const int buf_size = 1024; char* pcFileInhalt = new char[buf_size];Kurt
-
char* pcPfad = new char;Das Ergebnis dieser Zeile ist ganz sicher keine Zeichenkette, sondern
lediglich ein einzelnes Zeichen.
-
HI !
stimmt ist mir grad aufgefallen
,
sorry.
@ZuK: genau so hab ich des gemeint
__stdcall*
-
Ok erst mal vielen dank für eure hilfe. besonders gefallen hat mir die lösung von __stdcall*. verstehe nur nicht so ganz diese
strlen(pcFileInhalt);
und diese
fread(pcFileInhalt, sizeof(char), strlen(pcFileInhalt), fIn);
zeile
-
Ich fühl mich geehrt

fread(1, 2, 3, 4)
1 = Zeichenkette die die gelesenen Daten enthält,
2 = Speicherplatz der als Puffer genutzt wird (wenns net stimmt bitte korrigieren)
3 = Länge der Zeichenkette die eingelesen werden soll (aus Datei)
4 = FILE* Zeiger auf die Datei
P:S les dir mal die beiträge von ZuK, MFK und RedHead durch die Variable pcFileInhalt ist KEINE Zeichenkette sondern nur ein einzelnes Zeichen.
Mach es lieber so wie ZuK es mir gesagt hat (danke an ihn
):const int buf_size = 1024; char* pcFileInhalt = new char[buf_size];__stdcall*
Und Danke an ZuK der mir gezeigt hat, wie ich eine Zeichenkette erstelle

-
Oliver1980 schrieb:
Ok erst mal vielen dank für eure hilfe. besonders gefallen hat mir die lösung von __stdcall*. verstehe nur nicht so ganz diese
strlen(pcFileInhalt);
und diese
fread(pcFileInhalt, sizeof(char), strlen(pcFileInhalt), fIn);
zeileJa klar. Ist auch nur länger und C.
-
ness schrieb:
Ja klar. Ist auch nur länger und C.
Und falsch noch dazu. Hab jetzt keine Zeit mehr. Vielleicht kann jemand adnerer erklären was nicht stimmt.
Kurt
-
OK, sorry das ich es net gut kann, ich will kein Stress, ich bin still,
ness mach es du

__stdcall*
-
#include <iostream> //streambasierte ein- und ausgabe #include <string> //klasse string #include <fstream> //streambasierte dateiein- und ausgabe using namespace std; //öffne den namspace std (in dem sich alle funktionen der stl befinden) int main() { string fn; //ein string cout<<"Dateiname: "; //wir brauchen kein flush, da //cout und cin mit tie verbunden sind cin>>fn; //lese bis zum leerzeichen/endline ein (der string wird automatisch vergrößert) ifstream f(fn.c_str()); //ein lese-datei-stream. Der knostruct ist ein wenig veraltet und nimmt den namen einer datei als const char* //deshalb das .c_str() //mach was mit fn //eine Zahl auslesen wäre z.b.: //int i; //f>>i; return 0; };Muss jetzt auch los.
-
Ok ness das letzte programm ist sehr kurz und trotzdem gut zu verstehen. Also nochmal vielen dank an alle habt mir sehr geholfen
