GELÖST c++ script gibt mir unerklärliche Warnungen aus

Diskutiere c++ script gibt mir unerklärliche Warnungen aus im Programmierung Forum im Bereich Software Forum; Hallo, Ich habe vor ein Paar Tagen angefangen mir c++ anzuschauen, also weiß ich noch nicht wirklich viel darüber.... Ich habe ein kleines Script...
L

Luddi

Threadstarter
Dabei seit
07.10.2008
Beiträge
51
Alter
26
Ort
NRW
Hallo,
Ich habe vor ein Paar Tagen angefangen mir c++ anzuschauen, also weiß ich noch nicht wirklich viel darüber....

Ich habe ein kleines Script geschrieben, das eine Division ausführen soll und das einmal mit Kommas, also long double ausgibt
und einmal als integer zusammen mit dem Rest.
_____________________________________________________________
#include <iostream>
using namespace std;

long double Divide(long double, long double);
int DivideInt(int, int);
int Rest(int, int);

int main()
{

long double d1, d2;
cout<<"Bitte erst Dividend und dann Divisor eingeben\n";
cin>>d1;
cin>>d2;

cout<<"Das Ergebnis von "<<d1<<" / "<<d2<<" ist "<<Divide(d1,d2)<<"\n";
cout<<"Bei Ganzzahlen ist das Ergebnis "<<DivideInt(d1,d2)
<<" und Rest = "<<Rest(d1,d2)"\n\n";
cin.get();
}

long double Divide(long double Divident, long double Divisor)
{
return Divident/Divisor;
}

int DivideInt(int Divident, int Divisor)
{
return Divident/Divisor;
}

int Rest(int Divident, int Divisor)
{
return Divident%Divisor;
}
___________________________________________________________

Wenn ich dieses Script nun kompilieren lasse bekomme ich folgende Warnungen

In function `int main()':
[Warning] passing `long double' for converting 1 of `int DivideInt(int, int)'
[Warning] passing `long double' for converting 1 of `int Rest(int, int)'
[Warning] passing `long double' for converting 2 of `int Rest(int, int)'
`;' before string constant

Ich hab auch ähnliche Warnungen erhalten, als ich vorher die long double zu int casten lassen wollte.
Woran mag das nun liegen und könnt ihr mir vllt weiterhelfen?
Auch wenn es nur ein banaler Fehler ist, bitte denkt dasran, dass ich noch noob bin;)
THX schonmal:up
 
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
@Luddi:

C++ Ist keine Scriptsprache. ;)

Die Warnungen sollen dich darauf hinweisen, dass du Flieskommazahlen implizit in Ganzzahlen umwandelst. Dadurch verliert das Ergebnis verständlicherweise stark an Genauigkeit.
 
L

Luddi

Threadstarter
Dabei seit
07.10.2008
Beiträge
51
Alter
26
Ort
NRW
Danke für die Antworten..

@Peter
Ich möchte ja zum einen Fließkommazahlen ausgeben lassen und zum anderen als Ganzzahlen zusammen mit dem Rest

Gibt es vllt eine Möglichkeit dem compiler mitzuteilen, dass die Fließkommazahlen als Ganzzahlen behandelt werden dürfen?
Oder besser nach der Ausgabe der Fließkommazahl die Variablen zu casten und das ohne weitere Fehlermeldungen?

@ DiableNoir
btw: Wie bezeichnet man denn den c++ code? und wo liegt der Unterschied zwischen dem und einem script?
 
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
@Luddi:

Ich bin mir jetzt gerade nicht sicher, aber ich denke dass der Compiler dir immer eine Warnung liefern wird. Es ist ja nur ein Hinweis für dich, dass in dieser Situation was schiefgehen könnte, aber nicht muss. ;)

Es ist ja so, das du zwar durch das explizite Casten der Variablen die Warnung wegblenden kannst, aber dann erscheint die Warnung für die Casting-Anweisung, weil du versuchst einen Datentyp mit einem größeren Wertebereich in einen kleinen zu konvertieren. Der Compiler kann an dieser Stelle nicht ermitteln, ob die Werte die dein Programm erzeugt, auch immer in die Zielvariable passen wird.

Was deine Script-Frage betrifft: Scripts sind Textdateien die von einem Interpreter Zeile für Zeile interpretiert und ausgeführt werden. C++-Quellcodedateien lassen sich nicht direkt ausführen sondern müssen erst in Maschinencode kompiliert und verlinkt werden um daraus ausführbaren Code zu erzeugen. (Sie laufen dann auch direkt auf der CPU und nicht im Adressraum eines Interpreters.)
 
L

Luddi

Threadstarter
Dabei seit
07.10.2008
Beiträge
51
Alter
26
Ort
NRW
THX DiableNoir für die Erklärung

nun ist es aber so,
dass der Compiler bei der Warnung aufhört zu kompilieren
Vllt ist die Frage ein wenig zu allgemein aber was gäbe es da für Alternativen?


________________________________________________________
#edit:

Also, ich hab gerade gemerkt, dass der dann bei den Warnungen doch weiterkompiliert.
Es lag an ...
`;' before string constant
Ich hab den quellcode dann so umgeschrieben:

....
int main()
{

long double d1, d2;
cout<<"Bitte erst Dividend und dann Divisor eingeben\n";
cin>>d1;
cin>>d2;

cout<<"Das Ergebnis von "<<d1<<" / "<<d2<<" ist "<<Divide(d1,d2)<<"\n";
cout<<"Bei Ganzzahlen ist das Ergebnis "<<DivideInt(d1,d2)<<" und Rest = "<<Rest(d1,d2);
cout<<"\n\n";
cin.get();
}

....

Also es hat das Problem teilweise gelöst, nur ist mir nicht ganz klar warum, darf man dort nicht so viele Unterbrechungen machen oder ähnliches?
Das Problem ist nun, wenn ich die exe ausführe gibt es eine Fehlermeldung, wenn long double als int behandelt werden soll
Also verweise ich auf meine obige Frage:
"Vllt ist die Frage ein wenig zu allgemein aber was gäbe es da für Alternativen?"
 
Zuletzt bearbeitet:
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
Nein, das liegt daran, dass dir ein << gefehlt hat:

cout<<"Bei Ganzzahlen ist das Ergebnis "<<DivideInt(d1,d2)<<" und Rest = "<<Rest(d1,d2)<<"\n\n";
Das war der Quell allen Übels, der für die ganze Verwirrung gesorgt hat. ;)
 
L

Luddi

Threadstarter
Dabei seit
07.10.2008
Beiträge
51
Alter
26
Ort
NRW
Aha...vielen Dank. hat sich damit dann auch erledigt :D
 
Thema:

c++ script gibt mir unerklärliche Warnungen aus

c++ script gibt mir unerklärliche Warnungen aus - Ähnliche Themen

  • IIS FTP: Gibt es Login Scripts?

    IIS FTP: Gibt es Login Scripts?: Hi! Ich hab nen FTP Server auf meinem (W2K Server) Server laufen! Jetzt möchte ich wissen ob es scripte gibt die einem user, wenn er sich...
  • Windows 10 Start-Probleme - Windows Script Host/Laufzeitfehler VBScript

    Windows 10 Start-Probleme - Windows Script Host/Laufzeitfehler VBScript: Hi liebe Community, seit gestern stürzt mein Rechner ab. Gestern nachdem mein Rechner hochgefahren war kam die folgende Fehlermeldung...
  • Windows Script Fehler

    Windows Script Fehler: Hallo, Seit kurzem bekomme ich in regelmäßigen Abständen Error Meldungen von Windows Script Host in denen folgendes gesagt wird: Ich habe...
  • Windows Script Host

    Windows Script Host: Seit kurzen erscheint folgende Meldung: Windows Script Host Skript:C:/Users/Berthold/SysWOW64/qnHX98dp.vbs Zeile: 3 Zeichen: 1 Fehler: Das System...
  • Ähnliche Themen
  • IIS FTP: Gibt es Login Scripts?

    IIS FTP: Gibt es Login Scripts?: Hi! Ich hab nen FTP Server auf meinem (W2K Server) Server laufen! Jetzt möchte ich wissen ob es scripte gibt die einem user, wenn er sich...
  • Windows 10 Start-Probleme - Windows Script Host/Laufzeitfehler VBScript

    Windows 10 Start-Probleme - Windows Script Host/Laufzeitfehler VBScript: Hi liebe Community, seit gestern stürzt mein Rechner ab. Gestern nachdem mein Rechner hochgefahren war kam die folgende Fehlermeldung...
  • Windows Script Fehler

    Windows Script Fehler: Hallo, Seit kurzem bekomme ich in regelmäßigen Abständen Error Meldungen von Windows Script Host in denen folgendes gesagt wird: Ich habe...
  • Windows Script Host

    Windows Script Host: Seit kurzen erscheint folgende Meldung: Windows Script Host Skript:C:/Users/Berthold/SysWOW64/qnHX98dp.vbs Zeile: 3 Zeichen: 1 Fehler: Das System...
  • Oben