Hallo Leute,
ich muss ein interpreter in C schreibe aber ich brauche Hilfe, momentan weiss ich net wie ich ein datei laden kann und danach mit der commando run es ausfuhren soll, ich hab es bis hier geschafft:
load <filename>
Lade den angegebenen Filenamen in den Programmspeicher. Sollte das angegebene File nicht existieren oder das lesen fehlschlagen, soll:
[ERR] reading the file failed\n
ausgegeben werden. Wenn das parsen des Brainfuck Codes nicht funktioniert (Fehlende Klammern), soll:
[ERR] parsing of input failed\n
ausgegeben werden. Bei einem load, sollen die Daten resetet werden.
run
Führe das geladene Programm aus. Wenn noch kein Programm im Speicher ist, soll:
[ERR] no program loaded\n
ausgegeben werden. Nach dem erfolgreichen Durchlaufen des Codes soll das Programm sich bei erneutem 'run' gleich verhalten, als wäre noch kein Code im Speicher. Die Daten sollen bis zu einem erneutem 'load' vorhanden bleiben.
ich muss ein interpreter in C schreibe aber ich brauche Hilfe, momentan weiss ich net wie ich ein datei laden kann und danach mit der commando run es ausfuhren soll, ich hab es bis hier geschafft:
C++:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
FILE *datei;
datei = fopen(argv[1], "r");
printf("esp> ");
scanf("%d", &i);
if(datei != NULL)
{
while((i = fgetc(datei))!=EOF) {
printf("%c", i);
}
}else{
printf("[ERR] no program loaded\n");
}
return 0;
}
load <filename>
Lade den angegebenen Filenamen in den Programmspeicher. Sollte das angegebene File nicht existieren oder das lesen fehlschlagen, soll:
[ERR] reading the file failed\n
ausgegeben werden. Wenn das parsen des Brainfuck Codes nicht funktioniert (Fehlende Klammern), soll:
[ERR] parsing of input failed\n
ausgegeben werden. Bei einem load, sollen die Daten resetet werden.
run
Führe das geladene Programm aus. Wenn noch kein Programm im Speicher ist, soll:
[ERR] no program loaded\n
ausgegeben werden. Nach dem erfolgreichen Durchlaufen des Codes soll das Programm sich bei erneutem 'run' gleich verhalten, als wäre noch kein Code im Speicher. Die Daten sollen bis zu einem erneutem 'load' vorhanden bleiben.