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.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe kürzlich ein Programm unter Linux geschrieben, welches eine Datenbank aus einer txt-Datei einliest, mit dieser dann je nach Benutzereingabe rechnet und die Datenbank anschließend wieder in die txt-Datei speichert.

Das Programm läuft einwandfrei.

Nun wollte ich es auch unter Windows 7 zur Verfügung haben.

Also habe ich den gleichen Quelltext in Windows kompiliert und es funktioniert nicht. Das Programm liest die Werte korrekt ein und rechnet auch korrekt, doch kann es nicht mehr speichern.

Selbst ein simpelstes Programm, welches nur ein Zeichen in eine txt-Datei schreiben soll, funktioniert bei mir nicht, da es nicht gespeichert wird.

Zum Kompilieren habe ich schon dmc und Dev-C benutzt.

Woran kann das liegen?

Vielen Dank im Voraus

Dev-Cpp solltest Du nicht mehr verwenden, da es seit einigen Jahren nicht mehr entwickelt wird und das Projekt wohl eingestellt ist (siehe Wikipedia).

Ansonsten schließe ich mich an, dass Du bitte einmal den Code zeigen solltest

Der Compiler gibt keinerlei Fehlermeldung aus.

In Linux hat es ja auch funktioniert.

Speichern möchte ich in C:/Ordner

Den Ordner habe ich selbst erstellt, da dürfte es ja keine Probleme geben.

Der ursprüngliche Code ist etwas komplex.

Ich habe mal ein sehr einfaches Programm geschrieben:

...

int main() {

FILE *data;

data = fopen("Datei.txt", "r+");

int c = 'a';

fputc(c, data);

fclose(data);

}

Hier bleibt die Datei seltsamerweise unverändert.

Ich werde es auch noch einmal mit Visual Studio versuchen.

Aber wieso sollte ich keine Rechte in einem selbst erstellten Ordner auf C haben? Habe auch schon "Als Administrator ausführen" versucht.

Habe gerade eben etwas herausgefunden:

Öffne ich die Datei mit fopen(..., "w") so schreibt er die Datei und fügt auch in dem Beispiel den Buchstaben ein.

Mit den Schreibrechten dürfte es also kein Problem geben.

Wieso funktioniert denn dann aber "r+" nicht?

Habt ihr eine Idee?

Ich habe es gelöst, wenn ich es auch nicht verstehe.

Die Datei existierte natürlich vorher schon, "r+" ist ja ein Lesemodus.

Wenn ich über Rechtsklick->Neu->txt-Datei im Explorer eine Datei erstelle und dann das Programm laufen lasse, funktioniert es nicht.

Erstelle ich jedoch zuerst mit einem Programm mit fopen(..., "w") eine txt-Datei und lasse dann das Programm mit "r+" laufen, so funktioniert es komischerweise.

Jetzt kann ich die Datei auch mit dem Editor bearbeiten und es funktioniert trotzdem noch.

Seltsam, oder?

Vielen Dank für die Hilfe!

Du hast Recht. Die Speicherungsdatei, die ich aus Linux herübergezogen habe, besaß keine Änderungsrechte. Da bin ich jedoch nicht drauf gekommen.

Wusste auch bis eben noch nicht, das es dafür bei Windows 7 in den Dateieigenschaften einen eigenen Reiter gibt (Habs erst neu).

Vielen Dank nochmal

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.