29-08-2000, 20:08
Hallo!
Ich habe eine Datei, in der lauter Wörter untereinanderstehen. In jeder Zeile ein Wort. Die Zeilen sind mit dem ASCII-Zeichen Nr. 10 von einander getrennt. Jetzt habe ich ein Programm geschrieben, das alle Wörter einliest:
// strings.h
#ifndef __STRINGS_H__
#define __STRINGS_H__
char *Strings [138];
extern void InitStrings();
extern char *getString(int index);
#endif
// strings.c
#include (stdio.h) //soll eine eckige Klammer darstellen
#include "strings.h"
void InitStrings()
{
FILE *file_p
char line [81]
int i;
file_p = fopen ("strings" , "r");
for (i=0; i <= 137; i++)
{
Strings[i] = fgets (line , 80 , file_p);
}
fclose (file_p);
}
char *getString(int index)
{
return Strings[index];
}
// test.c
#include (stdio.h)
#include "strings.h"
int main(void)
{
InitStrings();
puts(getString (X-Beliebige Zahl));
return;
}
Wenn ich dieses Programm jetzt starte bekomme ich immer die Hälfte (die ersten 12 Zeichen) der letzten Zeile auf dem Bildschirm angezeigt. Egal welche Zahl ich in der Datei test.c angebe. Kann mir jemand sagen. warum das so ist?
Kann mir jemand helfen?
PS .: Gibt es eine Möglichkeit unter Linux den Quelltext reinzukopieren?
[Dieser Beitrag wurde von Nicolas am 29. August 2000 editiert.]
Ich habe eine Datei, in der lauter Wörter untereinanderstehen. In jeder Zeile ein Wort. Die Zeilen sind mit dem ASCII-Zeichen Nr. 10 von einander getrennt. Jetzt habe ich ein Programm geschrieben, das alle Wörter einliest:
// strings.h
#ifndef __STRINGS_H__
#define __STRINGS_H__
char *Strings [138];
extern void InitStrings();
extern char *getString(int index);
#endif
// strings.c
#include (stdio.h) //soll eine eckige Klammer darstellen
#include "strings.h"
void InitStrings()
{
FILE *file_p
char line [81]
int i;
file_p = fopen ("strings" , "r");
for (i=0; i <= 137; i++)
{
Strings[i] = fgets (line , 80 , file_p);
}
fclose (file_p);
}
char *getString(int index)
{
return Strings[index];
}
// test.c
#include (stdio.h)
#include "strings.h"
int main(void)
{
InitStrings();
puts(getString (X-Beliebige Zahl));
return;
}
Wenn ich dieses Programm jetzt starte bekomme ich immer die Hälfte (die ersten 12 Zeichen) der letzten Zeile auf dem Bildschirm angezeigt. Egal welche Zahl ich in der Datei test.c angebe. Kann mir jemand sagen. warum das so ist?
Kann mir jemand helfen?
PS .: Gibt es eine Möglichkeit unter Linux den Quelltext reinzukopieren?
[Dieser Beitrag wurde von Nicolas am 29. August 2000 editiert.]