Zum Inhalt springen

[C++.NET] Dateioperationen


Shadowman

Empfohlene Beiträge

ifstream f("src/"+this->Job->Text+".rcs");

error C2664: 'std::basic_ifstream<_Elem,_Traits>::basic_ifstream(const char *,std::ios_base::openmode,int)': Konvertierung des Parameters 1 von 'System::String ^' in 'const char *' nicht möglich

diese fehlermeldung bekomme ich leider wegen dem ifstream...

fstream ist included

kannst mir vielleicht mal jemand sagen, was das bedeutet?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich habe jetzt folgendes probiert:

FILE *datei;

datei = fopen("src/"+this->Job->Text+".rcs","r");

fclose(datei);

dabei bekomme ich folgende fehlermeldung:

error C2664: 'fopen': Konvertierung des Parameters 1 von 'System::String ^' in 'const char *' nicht möglich

den stört auf jeden fall dass ich den pfad dort zusammen baue...

darum habe ich das extern gemacht:

FILE *datei;

const char *pfad = "src/"+this->Job->Text+".rcs";

datei = fopen(pfad,"r");

dabei bekomme ich dann den fehler:

error C2440: 'Initialisierung': 'System::String ^' kann nicht in 'const char *' konvertiert werden

ich habe schon viel hin und her probiert, komme aber zu keiner lösung...vielleicht kan mir ja jemand helfen

Link zu diesem Kommentar
Auf anderen Seiten teilen

mit dem StreamReader hab ich die datei schonmal geöffnet bekommen...nur leider bekomme ich es jetzt nicht hin eine bestimmte zeile auszulesen...so ein mist aber auch

So ein Beitrag hilft dir nicht weiter, es sei denn, du willst nur Frust ablassen. Dazu ist das Forum aber nicht da.

Denn bei "ich bekomme es nicht hin" kann dir niemand helfen. Das ist keine ausreichende Fehlerbeschreibung. Zeig, was du gemacht hast, und sag, was der Compiler dazu sagt.

Und lass das mit fopen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok...ich muss zugeben, dass das einfach nur ein frustbeitrag war...aber naja...hab mir auch gedacht, dass mir vielleicht jemand den befehlt sagen könnte um eine einzelne zeile auszulesen...

in C# gibt es einen befehl ReadLine()

den gibt es leider in C++ nicht...oder ich finde ihn nur nicht

ich habe im moment:

String^ pfad = "src/"+this->Job->Text+".rcs";

FileStream^ datei = gcnew FileStream( pfad,FileMode::Open );

for(int i=0;i<stats.jlvl;i++) {

//this->comboBox1->Text = zeile i;

}

datei->Close();

was ist denn an fopen so schlimm?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab mir auch gedacht, dass mir vielleicht jemand den befehlt sagen könnte um eine einzelne zeile auszulesen...
Strenggenommen gibt es in dieser Sprache keine Befehle.

Zum komfortablen Auslesen brauchst du noch einen Reader:

FileStream^ datei = gcnew FileStream( pfad, FileMode::Open );
StreamReader^ reader = gcnew StreamReader( datei );
while( !reader->EndOfStream )
{
Console::WriteLine( reader->ReadLine() );
}[/code]

was ist denn an fopen so schlimm?
Du solltest bei deinem Kenntnisstand nicht auch noch unterschiedliche Sprachen durcheinanderwürfeln, sonst verlierst du noch schneller den Überblick :)
Link zu diesem Kommentar
Auf anderen Seiten teilen

das dies mein erstes windows programm ist...könntest du mir vielleicht verraten, was ich machen muss um die exe ans laufen zu bekommen?

als einzigstes include habe ich "string"

wenn ich das programm verschicken bekommen diese personen fehlermeldungen wie:

"Die Anwendung konnte nicht richtig initalisiert werden (0xc0000135). Klicken Sie auf "OK", um die Anwendung zu beenden."

oder:

"Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren."

einfach eine kurze anleitung wäre super ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

und noch eine frage...man kann nicht wirklich einen string in ein int casten oder?

also es geht darum, dass ich eine datei öffne, zeile 0 bis n schrittweise abarbeiten will und in dieser datei stehen zeilenweise zahlen, die angeben, welcher wert incrementiert werden soll.

6

4

3

5

1

so zum beispiel.

dann soll wenn n=3 ist

wert6++

wert4++

wert3++

gemacht werden.

wie könnte ich das lösen?

Link zu diesem Kommentar
Auf anderen Seiten teilen


        FileStream^ datei = gcnew FileStream( pfad,FileMode::Open );

        StreamReader^ reader = gcnew StreamReader( datei );

        for(int i=0;i<stats.jlvl;i++) {

          ??? text = reader->ReadLine();

          if(text=='1') {

            bonus.Str++;

          }else if(text=='2') {

            bonus.Agi++;

          }

        }

        datei->Close();

      }

irgendwie muss ich den reader in ein format casten, welches ich mit chars, strings oder integers vergleichen kann...wenn mir einer sagen könnte, wie das geht wäre das schonmal super^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...