Txt-Datei öffnen und Sinus berechnen



  • Hallo zusammen,

    ich habe ein Text-File indem sehr viel Zeugs (u.a. Berechnungen) steht. Die Berechnungen mach ich jedoch nicht mit C++. Ich möchte vorher jedoch die Sinus-Terme durch ihre tatsächlichen Ergebnisse ersetzen.

    Input
    A=30+sin(90)

    Output
    A=30+1

    Einlesen von Dateien ist kein Problem geschieht Zeilenweise, nur das Auffinden von Sinus und ersetzen der Terme verstehe ich nicht ganz. Zuerst muss ich nach dem sinus suchen und den Wert zwischend den beiden Klammern speichern. Diesen muss ich dann mit PI multiplizieren und durch 180 teilen. Den errechneten Wert müsste ich dann mit dem gespeicherten ersetzen. Soweit wäre meine Theorie, nur bei der Umsetzung haperts...

    Vielleicht kann ja jemand helfen...



  • Wenn Du eine Zeile gelesen hast und in einer Variablen vom Typ string speicherst, bietet Dir der Typ string doch alle Funktionalitäten, die Du benötigst, suchen, löschen, einfügen:

    http://cplusplus.com/reference/string/string/

    Wenn Deine Zeile dann fertig präpariert ist (oder an einer Zeile keine Änderung erforderlich war), schreibst Du sie in eine neue Datei.



  • Hallo Belli,

    genauso sieht das Programm derzeit aus, wie du es beschreibst --> Zeile einlesen speichern und neu schreiben. String ist immer "Zeile".

    Die Klasse String ist mir auch ein wenig bekannt. Nur suche ich die beste Vorgehensweise? Suche ich im String nach Sin und setze einen Pointer an die Stelle+1 und speichere die nächsten 3Zeichen ? Was ist, wenn aber nur "sin(30)" ist. Dann wird ja die letzte Klammer mitgespeichert.

    Du siehst leider fehlt mir die praktische Erfahrung im Umgang mit Strings. Aus einem Lehrbuch lerne ich das leider auch nicht, da nur Grundlagen vermittelt werden.


  • Mod

    Du suchst nach "sin(". Dann packst du den Rest des Strings von da an in einen Stringstream und wendest einmal den Operator>> mit int/double (je nachdem was du willst) an. Dieser stoppt automatisch bei der Klammer zu.


Anmelden zum Antworten