Getchar() Methode prüfen ob ein Zeilenumbruch oder Ende der Datei
Hallo zusammen,
ich brauche eine Methode welches im Groben mir eine Eingabe mittels getchar() einließt und mit einer int-Variable welche ich festsetze wieviele Zeichen als Schranke gesetzt sind und die überschüssigen Zeichen werden abgeschnitten.
Beispiel(Textdatei Inhalt):
Hallo
Ein Test
Wenn ich jetzt als meine Schranke = 3 (value) setze, dann sollte meine Funktion beim ersten Aufruf:
Hal
ausgeben und beim 2. Aufruf:
Ein
ausgeben.
Hier mein Ansatz:
Leider liefert mir meine Methode jedes mal am Ende noch einen leeren String dieses möchte ich ausfiltern leider komme ich nicht drauf wo da mein Fehler liegt? Oder hat jmd einen besseren Ansatz?
Vielen Dank.
Beste Grüße.
Hallo
Ein Test
Wenn ich jetzt als meine Schranke = 3 (value) setze, dann sollte meine Funktion beim ersten Aufruf:
Hal
ausgeben und beim 2. Aufruf:
Ein
ausgeben.
Hier mein Ansatz:
void Input (char *string)
{
char charbuf;
char stringbuf[value + 1];
int i;
/* read characters of the input up to user-columns */
for (i = 0; i < value + 1; i++)
{
stringbuf[i] = getchar ();
// if end of the line is reached
if (stringbuf[i] == '\n')
{
// add end of the string marking
stringbuf[i] = '\0';
strcpy (string, stringbuf);
return;
}
// if end of file is reached
if (stringbuf[i] == EOF)
{
// add end of the string marking
stringbuf[i] = '\0';
strcpy (string, stringbuf);
return;
}
}
/* abschneiden falls value < string */
stringbuf[i-1] = '\0';
strcpy (string, stringbuf);
/* to get the new line */
charbuf = getchar ();
while (charbuf != '\n' && charbuf != EOF)
charbuf = getchar ();
return;
}
Vielen Dank.
Beste Grüße.
Please also mark the comments that contributed to the solution of the article
Content-Key: 186070
Url: https://administrator.de/contentid/186070
Printed on: April 25, 2024 at 15:04 o'clock