Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C: Fehler bei Dateierstellung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
nano99 C: Fehler bei Dateierstellung

Ach ja, dieses \0!
Jetzt klappt alles,
vielen Dank!
Daumen hoch
Karlito

Hallo,

Du hast vergessen die Strings zu terminieren. Ein String in C muss immer mit '\0' enden. Du brauchst also ein Array mit 13 Elementen anstatt 12. Schau dir vlt mal diese Seite an: http://www.mikrocontroller.net/articles/...rarbeitung_in_C

Leerzeichen könnten auch ärger machen. Das musst du mal ausprobieren.

VG,

Karlito
nano99 C: Fehler bei Dateierstellung

Meine Frage:
Hi!

Ich bin gerade dabei, ein kleines Programm zum Managen von Dateien zu schreiben. Ich habe es auch schon geschafft, den höchstens 8 Zeichen langen Dateinamen eingeben zu können. Nun möchte möchte ich eine Datei mit dem Namen dateiname + ".txt" erstellen. Aber da ist schon mein Problem. (Ich habe nur einen kleinen (den fehlerhaften) Ausschnitt meines Programms genommen)

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
#include <stdio.h>
#include <conio.h>
#define KEY_EXE 13
#define KEY_A 97
#define KEY_ENTF 83

int main()
{
 int i, j, key;
 int cursorpos=0;
 char dateiname[8];
 char dateiendung[4]=".txt";
 char dateinamegesamt[12];
 FILE *datei;
 for(i=0; i<=7; i++)
 {
  dateiname[i]=' ';
 }
 gotoxy(6,1);
 printf("Neue Datei");
 gotoxy(1,3);
 printf("Dateiname?");
 gotoxy(1,4);
 printf("[        ]");
 gotoxy(2,4);
 do
 {
  key=getch();
  if(key==KEY_A && cursorpos<=7)
  {
   dateiname[cursorpos]='A';
   locate(cursorpos+2,4,"A");
   cursorpos++;
  }

  //Alle restlichen Buchstaben B - Z

  if(key==KEY_ENTF && cursorpos!=0)
  {
   dateiname[cursorpos]=' ';
   locate(cursorpos+1,4," ");
   cursorpos--;
  }
 }
 while(key!=KEY_EXE);
 gotoxy(1,5);
 for(i=0; i<=7; i++)
 {
  dateinamegesamt[i]=dateiname[i];
 }
 j=0;
 for(i=8; i<=11; i++)
 {
  dateinamegesamt[i]=dateiendung[j];
  j++;
 }
 printf("Der Name: %s\n", dateinamegesamt);
 datei=fopen(dateinamegesamt,"w");
 if(datei==NULL)
 {
  printf("Fehler beim Erstellen der Datei!");
 }
 fclose(datei);
 return 0;
}

Nun habe ich ja in Zeile 57 angeben, dass der Dateiname vorher noch ausgegeben werden soll. Wenn ich das Programm aber ausführe, erhalte ich nur folgendes:

code:
1:
2:
3:
4:
5:
6:
7:
8:
     Neue Datei

Dateiname?
[AAAA    ]
Der Name: AAAA    .txt- .txtAAAA    
Fehler bein Erstellen der Datei!

Und eine Datei wird natürlich auch nicht erstellt.

Meine Ideen:
Ich habe ja am Anfang das Dateinamen Array mit Leerzeichen gefüllt und setzte am Ende den Dateinamen mit der Dateiendung ".txt" zusammen.
Nun wird aber ja nach dem korrekten Namen "AAAA .txt" noch "- .txtAAAA " ausgeben und die Datei wird nicht erzeugt.

Woran könnte das liegen?