Zum Inhalt springen

Dringend Hilfe beim Programmieren mit C gesucht!!!!


Empfohlene Beiträge

Geschrieben

Hallo

ich habe folgendes Programm geschrieben (mit Visual Studio 2008) um aus einer Textdatei Koordinaten einzulesen und diese umgerechnet in eine neue Textdatei zu schreiben:

#include <stdio.h>

#include <math.h>

void Ka_Ku(float x,float y, float z,FILE*fOUT2)

{

float r,phi,theta;

r=sqrt(x*x+y*y+z*z);

phi=atan(y/x);

theta=acos(z/r);

fprintf(fOUT2,"%f %f %f \n",r,phi,theta);

//Daten in Datei schreiben

}

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

{

float xeing,yeing,zeing;

float roheing,alphaeing,hoeheeing;

float reing,phieing,thetaeing;

int i=5;

FILE * daten;

FILE * fOUT;

int line[100];

if (argc<2)

{printf("Falsche Eingabe");};

if (strcmp(argv[1],"Daten.xyzk")!=0)

{

daten=fopen(argv[1],"r");

fOUT=fopen("Umrechnung.ku","w");

while (!feof(daten))

{

fgets(line,100,daten);

sscanf(line,"%f,%f,%f",&xeing,&yeing,&zeing); //Daten einlesen und Variablen zuweisen

Ka_Ku(xeing,yeing,zeing,fOUT);

}

fclose(daten);

fprintf(fOUT,"Karthesisch in Kugelkoordinaten");

fclose(fOUT);

}

...

In der Datei Daten.xyzk stehen die einzulesenden Daten.

Wenn ich das Programm Debugge und vorher einstelle, dass die Datei Daten.xyzk als Befehlsargument übergeben wird, funktioniert das Programm.

Wenn ich es jetzt aber richtig über cmd ausführen will krieg ich Fehlermeldungen.

Kann mir irgendjemand helfen????

Beitrag bearbeiten/löschen

Geschrieben
Wenn ich es jetzt aber richtig über cmd ausführen will krieg ich Fehlermeldungen.

Also diese Beschreibung sagt dann ja wohl alles oder?

Mein letztes C Programm ist schon ein bissl her, aber wenns im Debug Modus läuft und ansonsten nicht, dann war das meinsten ein Hinweis auf einen Arrayüberlauf o.ä. Im Debugmodus werden noch diverse Informationen mit ins Programm kompiliert, der Platzbedarf steigt und dort fallen dann solche Fehler nicht auf, weil der überschriebene Speicher zufällig leer war.

Was mir auffällt: Du verwendest gets mit einem int array. Um Strings einzulesen sollte man auch ein char[] verwenden.

Dim

Geschrieben
Wenn ich das Programm Debugge und vorher einstelle, dass die Datei Daten.xyzk als Befehlsargument übergeben wird, funktioniert das Programm.
Das möchte ich anzweifeln. Denn genau in diesem Fall tut das Programm eigentlich gar nichts, insbesondere wird Ka_Ku nicht aufgerufen.

if (strcmp(argv[1],"Daten.xyzk")!=0)

Wenn du das Programm mit Daten.xyzk aufrufst, ist diese Bedingung nicht wahr, damit wird der gesamte Block übersprungen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...