C Programmieren Aufgabe..

...komplette Frage anzeigen

2 Antworten

Das schreiben würde ich mit fwrite machen

http://www.cplusplus.com/reference/cstdio/fwrite/

Die Übergabeparameter sind im Prinzip auch schon alles, was du zusammenstellen musst. ptr ist der String (char*), denn du schreiben willst, size ist sizeof(char) , count ist die Anzahl der Zeichen, die du schreiben willst (81! - 80 Zeichen und den Terminierer \0) und file ist der FILEPOINTER. Den String musst du dir dann immer zusammenbasteln, wie lang der Zwischenraum ist (also die Anzahl der Leerzeichen) ist, kannst du dir ausrechnen. Oder ist dein Problem das Anlegen der Dateien?

DerJoe55 15.05.2013, 21:29

Das anlegen der Dateien ist mein größtes Problem :)

0
DerJoe55 15.05.2013, 21:32
@DerJoe55

include <stdio.h>

include <stdlib.h>

include <math.h>

char nStart[300] char nEnd[800] int main () { int i; int nStart; int nEnd; int nst;

FILE *fp;

if ((fp=fopen("Aufgabe4.txt", "w")) ==NULL) {
fprintf(stderr,"***Fehler: Konnte Datei nicht oeffnen!\n");

return 1; }

printf("Bitte geben Sie den Start ein:\n");

fcanf("%d,&nStart");

printf("Bitte geben sie das Ende ein:\n");

fscanf("%d,&nEnd");

while(nStart >= nEnd){

printf("Fehler! Bitte geben Sie den Start ein:\n");

fscanf("%d,&nStart");

fprintf("Bitte geben sie das Ende ein:\n");

fscanf("%d,&nEnd");

}

nst = log10(nEnd) + 1;  

for(i=0; i<=nEnd; i++){

fprintf(fp,"/* text0%80.*d.txt\n ",nst , i);

fputs(i,fp);

} fclose(fp);

return 0; }

0
ceevee 15.05.2013, 21:41
@DerJoe55
char filename [50];

for (int i=0;i<n;i++)
{
  sprintf(filename,"./text0%02i",i);  //%02i = integer immer zweistellig ausgeben, fehlende Stellen mit 0 auffüllen
  FILE *f
  f = fopen(filename, "w");
  if(f == NULL)
  {
  //Fehlermeldung, Schleife abbrechen
  break;
  }
  //in die Datei schreiben
  fclose(f);
}

So ungefähr... Das schreiben geht mit fputs doch etwas einfacher, seh ich gerade...

0
DerJoe55 15.05.2013, 21:52
@ceevee

das ding ist ich habe so viele Fehlermeldung beim compilieren... ich hab da eine menge Fehler..

Vlt kannst du ja was erkennen..

0
ceevee 15.05.2013, 22:00
@DerJoe55
  • was ist aufgabe4.txt?
  • fcanf("%d,&nStart"); --> fscanf liest Dateien, du meinst sicherlich scanf. nStart und nEnd sind integer, also ist der erste Parameter %i, die Anführungszeichen sind auch falsch, richtig wäre scanf("%i",&nStart);
  • fprintf("Bitte geben sie das Ende ein:\n"); genau das gleiche, alles, was mit f anfängt, soll in eine Datei schreiben -> printf
  • fprintf(fp,"/* text0%80.*d.txt\n ",nst , i); schreibt in die Datei, die du mit fopen geöffnet hast (also fp), das hat also nichts mehr mit dem Dateinamen zu tun.

Versuch erstmal, ein Programm zu schreiben, das n leere Dateien schreibt und erweiter das dann so, dass in die Dateien geschrieben wird.

0
DerJoe55 15.05.2013, 22:11
@ceevee

dieses schreibt ja in eine leere Datei ... bin gerade bisschen durcheinander das mit %i habe ich gerade nicht bemerkt .. danke :)

0

Hier hast du mal ein Beispiel wie du durch putc Daten in eine Textdatei schreibst:

#include <stdio.h>

int main() {
FILE *datei;
int i;
text[] = "Auslesen mit putc\n";

if ((datei = fopen("Aufgabe4.txt", "w")) == NULL) {
    printf("Fehler beim schreiben der Datei);
}

for (i=0; text[i]; ++i) {
    putc(text[i], datei);
}
return 0;

}

Schau doch mal hier vorbei: http://www.codebasics.de/C/c_dateien.html

Einfache Beispiele mit fprintf, fscanf, putc, fgetc usw...

Was möchtest Du wissen?