in Dokumente schreiben
Re: in Dokumente schreiben
Weist du was Zeiger sind?
Das * ist die "Einleitung/kenzeichnung" von Zeigern.
kleine Erklärung:
du rufst fopen mit den Argumenten <Dateiname><Öffnungsart> zurück bekommst du einen Zeiger, Addresse auf die Datei. so das du weist wo die Datei ist.
Das * ist die "Einleitung/kenzeichnung" von Zeigern.
kleine Erklärung:
du rufst fopen mit den Argumenten <Dateiname><Öffnungsart> zurück bekommst du einen Zeiger, Addresse auf die Datei. so das du weist wo die Datei ist.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: in Dokumente schreiben
Was für ein "*"??Empire hat geschrieben:plötzlich wird das * als nicht declariert gemeldet (<stdio.h> ist vorhanden).
Bitte Code posten! (und mit [ code] und [ /code] taggen!) und korrekt einrücken!
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: in Dokumente schreiben
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int pin, n;
char d;
int main ()
{
printf ("Willkommen in deinem Tagebuch. Um sicherzustellen das Keiner deine einträge Liest gebe bitte dein Pin ein.\nPin:");
scanf ("%d", &pin);
if (pin == 1234)
{
printf ("Der Pin ist in ordnung.\nWelchen Tagebucheintrag wollen sie Bearbeiten?");
scanf ("%d", &n);
switch (n)
{
case 1: FILE *file = fopen("test1.odt", "r+"); break;
case 2: FILE *file = fopen("test2.odt", "r+"); break;
case 3: FILE *file = fopen("test3.odt", "r+"); break;
case 4: FILE *file = fopen("test4.odt", "r+"); break;
case 5: FILE *file = fopen("test5.odt", "r+"); break;
case 6: FILE *file = fopen("test6.odt", "r+"); break;
case 7: FILE *file = fopen("test7.odt", "r+"); break;
case 8: FILE *file = fopen("test8.odt", "r+"); break;
case 9: FILE *file = fopen("test9.odt", "r+"); break;
case 10: FILE *file = fopen("test10.odt", "r+"); break;
case 11: FILE *file = fopen("test11.odt", "r+"); break;
case 12: FILE *file = fopen("test12.odt", "r+"); break;
case 13: FILE *file = fopen("test13.odt", "r+"); break;
case 14: FILE *file = fopen("test14.odt", "r+"); break;
case 15: FILE *file = fopen("test15.odt", "r+"); break;
case 16: FILE *file = fopen("test16.odt", "r+"); break;
case 17: FILE *file = fopen("test17.odt", "r+"); break;
case 18: FILE *file = fopen("test18.odt", "r+"); break;
case 19: FILE *file = fopen("test19.odt", "r+"); break;
case 20: FILE *file = fopen("test20.odt", "r+"); break;
case 21: FILE *file = fopen("test21.odt", "r+"); break;
case 22: FILE *file = fopen("test22.odt", "r+"); break;
}
fclose(file);
}
else
{
printf ("Der Pin wer Falsch. Sie haben keine Zugriffsrecht!");
}
return 0;
Empire
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: in Dokumente schreiben
Es ist unter C so, das du Datentypen am ANFANG jeder Funktion Deklarieren musst(so hab ichs jedenfalls gelernt).
Du Deklarierst aber dein File in dem Switch, also Fehler.
Dann solltest du globale Variablen vermeiden und deine ints und chars in die Mainfunktion holen
und statt dem Switch einfach die eingegebene Zahl in den Pfadstring einbauen und den Rückgabewert überprüfen,
das ist glaube ich besser als deine Methode.
Du Deklarierst aber dein File in dem Switch, also Fehler.
Dann solltest du globale Variablen vermeiden und deine ints und chars in die Mainfunktion holen
und statt dem Switch einfach die eingegebene Zahl in den Pfadstring einbauen und den Rückgabewert überprüfen,
das ist glaube ich besser als deine Methode.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: in Dokumente schreiben
OK kapiert aber was ist ein Pfadstring?
mfg
Empire
mfg
Empire
Re: in Dokumente schreiben
test1.odtEmpire hat geschrieben:OK kapiert aber was ist ein Pfadstring?
jetzt muss du den Pfadstring auserstellen:
Teilstring: "test"
variable: n
Teilstring: ".odt"
Wer nicht auf seine Weise denkt, denkt überhaupt nicht.
Re: in Dokumente schreiben
Und wie verwendet das was?
mfg
Empire
mfg
Empire
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: in Dokumente schreiben
Also momentan werden die Datein als text1.txt ... text20.txt
Statt in einem Case Abzufragen ob der Nutzer jezt Zahl X eingegeben hat,
baust du diese Zahl in den Dateinamen ein und in diesem wird der Pafd angegeben und das ganze ist ein String => Pfadstring
Du öffnest jezt Datei "text"+NUMMER DER DATEI GESPEICHERT ALS INT+".txt", so öffnest du die Datei ohen löstig die Zahl amnuelle inzugeben,
und wenn die Datei nicht vorhanden sit, gibt fopen einen bestimmten wert zurück.
Statt in einem Case Abzufragen ob der Nutzer jezt Zahl X eingegeben hat,
baust du diese Zahl in den Dateinamen ein und in diesem wird der Pafd angegeben und das ganze ist ein String => Pfadstring
Du öffnest jezt Datei "text"+NUMMER DER DATEI GESPEICHERT ALS INT+".txt", so öffnest du die Datei ohen löstig die Zahl amnuelle inzugeben,
und wenn die Datei nicht vorhanden sit, gibt fopen einen bestimmten wert zurück.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: in Dokumente schreiben
Kanste bitte beispiel machen?
mfg
Empire
mfg
Empire
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: in Dokumente schreiben
Bei dir, da legst du für jeden Eintrag? eine neue Datei an.
Diese Dateien unterscheiden sich nur in einer Nummer die Aufsteigt.
So, statt jezt diese Nummer beim Compilieren einzugeben, also
Das ist scheiße, da du dadurch nicht erweiterungsfähig bist...
Stattdessen wandelst du den Eingegeben Integer in einen String(Aneinadereiung von Chars) um und gibts den im dateinamen an, also ungefähr so:
So kannst du fast unendlich neue Tagbucheinträge schaffen, ohne etwas in deinem Code zu ändern,
und ohne lange switch funktionen oder for's.....
Das ist einfacher und besser.
Diese Dateien unterscheiden sich nur in einer Nummer die Aufsteigt.
So, statt jezt diese Nummer beim Compilieren einzugeben, also
Code: Alles auswählen
File *file=fopen("text1.txt","r+");
Stattdessen wandelst du den Eingegeben Integer in einen String(Aneinadereiung von Chars) um und gibts den im dateinamen an, also ungefähr so:
Code: Alles auswählen
File *file=fopen("text"+atoi(nummer)+".txt", "r+");
und ohne lange switch funktionen oder for's.....
Das ist einfacher und besser.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum