Also habe ich ein Projekt erstellt, das Zahlen aus einer Textdatei liest und eine isometrische Projektion davon zeichnet, aber jetzt versuche ich ein Programm zu erstellen, das Zahlen generiert von 0-9 und schreibt sie in das Dokument. So sieht mein Code aus, aber das Dokument bleibt leer. Ich gehe davon aus, dass der Fehler entweder in meiner rand() -Funktion Verwendung ist, oder wenn ich die ganzen Zahlen in Zeichen umwandeln.Zufallszahlen in C erzeugen und in eine Textdatei schreiben
Vielen Dank im Voraus für alle Eingaben, und ich entschuldige mich, wenn es nur ein Bedienungsfehler ist. Ich bin ziemlich neu in diesem Zeug:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char str[10];
FILE *fptr;
int i;
int num;
char num2;
i = 0;
fptr = fopen("map.fdf", "w");
if (fptr == NULL)
{
printf("ERROR Creating File!");
exit(1);
}
while (str[i] != '\0')
{
num = rand() % 10;
num2 = num + '0';
str[i] = num2;
i += 1;
}
puts(str);
fprintf(fptr,"%s", str);
fclose(fptr);
return (0);
}
Danke für die Antwort. Die while-Schleife soll wiederholen, bis sie das '\ 0'-Zeichen trifft, das das Ende der Zeichenkette sein sollte, aber wie Hans erwähnt, scheint es, dass/0 beim ersten Zeichen in der Zeichenkette initialisiert wird. int i wird als Index für das aktuelle Zeichen in der Zeichenfolge verwendet. Der Grund, warum ich Low-Level-Programmierung verwende, liegt darin, dass 90% der vorgefertigten Funktionen in unserem Lehrplan verboten sind, einschließlich for-Schleifen. Nochmals vielen Dank für die Antwort, und ich werde Sie wissen lassen, ob es funktioniert! –
Danke noch einmal, ich habe es geschafft, es funktioniert mit einer while-Schleife! –