Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[C++.NET] Dateioperationen

Empfohlene Antworten

Veröffentlicht

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?

  • Autor

1.) ich bin ein absoluter anfänger bezüglich WindowsForms und Dateihandling in C++

darum keine ahnung, mit welchen befehlen ich arbeiten soll.

2.) ich grabe einen 4 jahre alten thread aus, weil ich die suche benutze und mir das alter egal ist

1.) ich bin ein absoluter anfänger bezüglich WindowsForms und Dateihandling in C++

darum keine ahnung, mit welchen befehlen ich arbeiten soll.

Was du da hast, ist aber kein "echtes" C++, sondern C++.NET.

Ich trenne das mal ab und schiebe es ins richtige Forum.

  • Autor

also ich bin immer noch nicht weiter gekommen...habe das komplette dateihandling gelöscht und will nochmal von vorne anfangen.

ich brauche folgende befehle:

1.) datei öffnen (fopen?)

2.) zeile n lesen

3.) datei schließen (fclose?)

wäre super wenn ihr mir mal helfen könntet

  • Autor

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

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 ;)

  • Autor

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?

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 :)
  • Autor

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 ;)

  • Autor

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?

  • Autor


        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^^

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.