String Behandlung

robeldiebone

Grünschnabel
Hallo,

ich habe eine Datei die die Werte wie folgt speichert:
(-15.000000/-20.000000) (-10.000000/-20.000000) 0.800000
(-5.000000/-40.000000) (5.000000/-40.000000) 0.800000
(-15.000000/-70.000000) (-10.000000/-65.000000) 0.990000
(-10.000000/-65.000000) (0.000000/-70.000000) 0.990000

ich lese die Datei blöckeweise per fscanf aus und habe leider ein Problem:
Wenn ich ein char[255] definiere und ab der 2. Zeile auslesen will, bekomm ich den string:
(-15.000000/-20.000000)
ich will aber die Rohdaten ohne "(" und "/" und ")" kann man das einfacher per fscanf auslesen? Oder kann mir einfach mal einer schnell sagen, wie ich ber strstr() und/oder substr() die "(" und "/" und ")" rausschneiden kann und jeweils die einzelnen Zahlen in float's speichern kann?

Danke Robert!
 
moin


Du kannst mit string_find oder wie das heisst die Positionen suchen und dann mit erase löschen.


mfg
umbrasaxum
 
ich muss die jeweiligen 2 Zahlen aber auch noch speichern? geht das nicht einfach mit strstr oder sowas? das ist doch nur ne kleinigkeit... :(
 
Du schreibst in c oder?
Da geht das eigentlich mit fscaf:

float a,b;
FILE* fp=fopen(deinfile,"r")

fscanf(fp, "(%f/%f)",a,b);
 
habe ich ebend probiert schon vor deinem posting und es geht nicht! ich schreibe in c++. müsste des net gleich dem c source sein? also mich nervt das wegen so kleinen "(" und "/" hier große funktionen zu definieren! muss doch einer schon mal gelöst haben?!
 
moin


Sicher wurde das irgendwo schonmal gelöst. Fakt ist aber das es mit einer "kleinen" Funktion nicht geht, bzw. dafür nicht gibt.


mfg
umbrasaxum
 
Sers,

es geht einfach wenn du nur ein trennzeichen in deinen daten hast

beispiel:

Code:
#include <string.h>
#include <iostream.h>
int main ()
{
  char str[] ="This: is a: simple: string";
  char zeichen[3] = ":";
  cout << strtok(str,zeichen) << endl;
  cout << strtok(NULL,zeichen) << endl;
  cout << strtok(NULL,zeichen) << endl;
  cout << strtok(NULL,zeichen) << endl;
  return 0;
}

für mehere trennzeichen, in deinem fahll ja die klammern musst das bissi umbaun und verschachteln... das einfachste währe wenn du den inhalt deiner Datei bissi abänderst ;-)

MfG Nase
 
Zurück