Sie können sscanf()
verwenden (werfen Sie einen Blick auf den Link, es hat ein Beispiel ähnlich Ihrem Bedarf).
Angenommen, jede Textzeile wird in das char-Array line
eingelesen.
sscanf(line, "%*s %*s %d", &age);
Wie Sie Vorname und Nachname nicht interessiert sind, können Sie %*s
verwenden, die es ermöglichen wird verbrauchen die Vor- und Nachnamen Literale von der Linie, und Sie werden sie nicht zuordnen müssen irgendeine Variable.
Unten finden Sie einen vollständigen Code für die Aufgabe, vorausgesetzt, Sie haben eine Textdatei mit dem Namen "input.txt", die die von Ihnen in der Frage angegebenen Texte enthält.
#include <stdio.h>
int main(int argc, char const *argv[])
{
freopen("input.txt", "r", stdin);
char line[100];
int age;
while(fgets(line, 100, stdin) != NULL)
{
sscanf(line, "%*s %*s %d", &age);
printf("%d\n", age);
}
return 0;
}
Ausgang:
21
45
82
3
102
Einige Links:
einen Blick auf der Antwort meiner nehmen. Denken Sie auch daran, [Antwort] (http://stackoverflow.com/help/accepted-answer) eine Antwort zu akzeptieren, indem Sie auf das Häkchen neben der Antwort klicken. Das gibt Ihnen [Reputation] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) auch: D und gibt auch dem Beantworter gebührende Anerkennung ;-) Ihre Frage Geschichte zeigt, dass Sie niemals eine Antwort akzeptiert haben, was falsch ist. Du nimmst Hilfe von Antworten, dann markierst du sie als akzeptiert, so funktioniert [so]. –