Dateinamen den ich öffnen möchte mitgeben!



  • Hi,

    ich will das man ein Textfile öffnen kann, aber der user soll selber den dateinamen eingeben ... also so:

    cout<<"Bitte geben Sie den Dateinamen ein, aus dem Sie lesen möchten: ";
    cin>> d;

    FILE *pf;
    int chr;

    pf = fopen(d, "r");

    if(!pf)
    {

    funzt aber net! Ich bekomm folgende Meldung:

    error C2664: 'fopen' : Konvertierung des Parameters 1 von 'char' in 'const char *' nicht moeglich
            Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    

    sagt mir nur "Bahnhof" drum bin ich für eure Hilfe dankbar!

    bye



  • d kann nicht string kein, es muss char* sein. Oder c_str() Methode benutzen (falls d string ist)



  • Wie hast du d deklariert?



  • datei_lesen()
    {
    	char d;
    	cout<<"Bitte geben Sie den Dateinamen ein, aus dem Sie lesen möchten: ";
    	cin>> d;
    
    	FILE *pf;
    	int chr;
    
    	pf = fopen(d, "r");
    ....
    


  • wieso liest du meine Antwort nicht? Da steht alles.

    Kein Wunder, dass das nicht geht, denn char d ist die Deklaration für ein einzlenes Zeichen, wenn du eine Zeichenkette haben willst, brauchst du char*



  • Wohl eher char[]

    Ich möchte noch anmerken, dass das hier das ANSI C Forum ist und der Quellcode eindeutig nicht ANSI C ist.



  • Für C:

    #include <stdio.h>
    
    char filename [128];
    printf("Geben Sie den Dateinamen ein:\n");
    fgets(filename,128,stdin);
    
    FILE* file;
    file = fopen(filename,"r");
    

    Für C++:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    string filename;
    cout << "Geben Sie den Dateinamen ein:" << endl;
    getline(cin,filename);
    
    ifstream file;
    file.open(filename.c_str());
    

    MfG SideWinder



  • vielen Dank!

    p.s.: sorry, ich programmier erst seit ner woche, hab also noch so gut wie kein plan (und des auch noch von gra nix!)


Anmelden zum Antworten