Können Sie mir helfen? Ich habe eine Zeichenfolge 23;56;36.6;run
in einer TXT-Datei. Dann lese ich diese Zeichenfolge, um es für einige Arbeit zu verwenden: Ich möchte diese Werte aus einer Zeichenfolge nehmen, dann vergleichen Sie sie mit einigen Werten in einem Code und mein Ergebnis ausgeben Konsole. Ich denke, ich sollte atoi()
Funktion verwenden, die meine Zeichenfolge in Zahlen machen, für die Auswahl, verwende ich strtok()
. Aber wie korrekt sollte ich meine Token in Schleife while
und das letzte Token ist ein Typ von Char. Wie kann ich diese Arbeit machen?Lesen Sie eine Zeichenfolge und erhalten Sie es in (Int) in C
Code:
void printInfo(int note)
{
int i;
FILE *out;
char str[250];
char sp[10]=";";
char *istr;
if ((out =fopen("test.txt","r"))==NULL)
printf("Error open, file\n");
else
{
for (i=0;i<note;i++)
{
fgets(str,250,out);
istr=strtok(str,sp);
while (istr != NULL)
{
printf("%d\n",atoi(istr));
istr=strtok(NULL,sp);
// I think, I need to create a variable for recording my values.
}
}
}
fclose(out);
}
Sie können Strings konvertieren Integer (oder Floats) mit 'sscanf'. – d3L
Ich würde sagen, die einfachste Lösung ist einfach: 'sscanf (" 23; 56; 36,6; run ","% f;% f;% f; ", & n [0], & n [1], &n[2]);' – d3L