probleme bei programmieraufgabe mit dateieinlesen.



  • Hallo, für mein Studium muss ich folgende aufgabe programmieren:

    Schreiben Sie ein Programm KoKonv.exe, das 3dimensionale
    kartesische Koordinaten wahlweise in Zylinderoder
    Kugelkoordinaten umrechnet und umgekehrt. Die Eingangskoordinaten sollen in Form einer Nx3Matrix
    in einer Textdatei hinterlegt sein, deren Name KoKonv.exe als Kommandozeilenparameter übergeben wird. Zusätzlich soll in der Datei hinterlegt sein, um welches KOSystem
    es sich bei den Daten dort handelt. Die Ausgangsdaten sollen optional in eine Datei geschrieben werden, die denselben Namen hat wie die Datei mit den Eingangsdaten, aber eine andere Dateinamenerweiterung (z.B. Daten.xyz >
    Daten.zyl).

    Ich habe dabei schon folgendes Geschrieben :
    #include <stdio.h>
    #include <math.h>

    int main (int argc, char * argv[]) // Hauptfunktion mit Kommandozeilenparameter interpretieren
    {

    FILE*daten; // Deklaration
    float eingdaten[3];
    float i;

    if (argc<2)
    {printf("Falsche Eingabe");}
    else
    {
    daten=fopen(argv[2],"r");

    habe jetzt aber folgendes problem.
    ich weiß nicht wie ich die daten vernünftig einlesen kann um damit weiterzurechnen.
    denke mal ich muss das irgendwie mit fgets machen, aber weiß nicht genau wie.
    über hilfe wäre ich sehr dankbar!!!



  • Was du da hast, ist C Code, du postest hier im C++ Forum 🙄

    Mit C++ geht das Einlesen einer Datei beispielsweise so:

    std::vector<std::string> lines;
    std::string              line;
    std::ifstream            ifs(argv[2]);
    if(ifs) {
      while(std::getline(ifs,line)) {
        lines.push_back(line);
      }
    }
    

    (benötigt, werden hier die Header: <string>, <fstream>, <vector>)

    Jetzt ist die Datei schonmal zeilenweise eingelesen, jetzt brauchst nur noch den Inhalt verwerten.

    Ein Vector ist "im Prinzip" die Kapselung eines Arrays.
    Sprich du kannst mittels

    "lines[Index]" einen Indexzugriff, wie bei einem "normalen" Array machen
    Um die Zeilen auszuwerten schaust du dir am besten die Möglichkeiten der Klassen std::string und std::stringstream an, wenn du das Ding mit C++ machen willst, versteht sich 😉



  • 😕
    Wie haben denn bloss früher die Studenten ohne Internet und den
    entsprechenden Foren ihre Übungen und Aufgaben geschafft?
    😕

    Gruß
    D.E.



  • Eng1958 schrieb:

    😕
    Wie haben denn bloss früher die Studenten ohne Internet und den
    entsprechenden Foren ihre Übungen und Aufgaben geschafft?
    😕

    Sie haben abgeschrieben oder bei entsprechender sexueller Orientierung des Professors blank gezogen. 😉


Log in to reply