Lesen Sie jede Zeile aus einer Datei, und teilen Sie die Zeile in einen string und ein array in C
Hausaufgaben - ich habe eine Zuweisung zu schreiben, ein Programm, eine Datei Lesen. Die Datei sieht wie folgt aus:
B 34 55 66 456 789 78 59 2 220 366 984 132 2000 65 744 566 377 905 5000
I 9000
I 389
Dm
DM
Wo B
ist bauen ein binary heap aus einem array von zahlen(die zahlen hinter der B.
Ich ist, legen Sie eine Zahl in das array/heap
Dm ist löschen, minimum und DM ist löschen maximum.
Ich geschrieben habe, der code für den heap, und kann füllen ein array mit random numbers
. Mein problem ist zu Lesen, dass first line
und analysieren Sie in eine string B
und ein array
.
Habe ich versucht mit dem folgenden code, der aber offensichtlich funktioniert es nicht.
char line[8];
char com[1];
int array[MAX] //MAX is pre-defined as 100
FILE* fp = fopen( "input_1.txt", "r" );
if( fp )
{
while( fgets ( line, sizeof(line), fp ) != NULL )
{
sscanf(line, "%s" "%d", &com, &array );
... //Following this, I will have a nested if that will take
each string and run the appropriate function.
if ( strcmp( com, "B" ) == 0 )
{
fill_array( array, MAX );
print_array( array, MAX );
}
Habe ich gelesen, für über 6 Stunden über insgesamt 3 Tage und finde keine Lösung zu meinem problem. Jede Hilfe wäre toll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst die
line
array sollte wohl eine Größe größer als 8, wahrscheinlich so etwas wiechar line[256]
. Das gleiche gilt für diecom
array, der mindestens 3 Zeichen lang sein.Müssen Sie Lesen Sie die Datei zeilenweise mit
fgets(line, sizeof(line), fp)
und die Verwendungstrtok()
zu trennen, der Befehl aus der command-Argumente.Die Idee ist, die Datei zu Lesen, Zeile für Zeile, dann für jede Zeile zu Lesen Sie zuerst den Befehl und basierend auf den Wert bestimmen, in welcher Art und Weise Sie sollten Lesen Sie den rest der Zeile.
In dem code oben habe ich als
B
Befehl, für die ich zusätzlichen code zu schreiben, der ein array.Hier ein kleines Programm, das eine Datei öffnen, Lesen out 1 line -, split-und was er findet um Räume:
Also ich führen Sie diese auf eine Datei mit:
Könnte ich erwarten, um zu sehen:
Ich denke, man kann sehen, wie, dies zu ändern, sich selbst zu helfen out.