ich hänge einfach fest
-
Guck mal Zeile 11, "char roemmische_Ziffer;"
Es gibt übrigens die C++-Tags, damit ist der Code um einiges einfacher zu lesen. Einfach den Code mitundummanteln

-
Fehler liegt da:
std::cin >> roemische_Ziffer; /*zeile 13*/Rechtschreibung beachtet auch der Compiler.
Das hier solltest du aber auch nochmal übredenken:
if ("roemische_Ziffer" == "I") arabische_Ziffer = 1;
-
diese else if blöcke schreien doch nach einem switch...
switch(roemische_Ziffer) { case 'I' arabische_Ziffer = 1; case 'V' arabische_Ziffer = 5; case 'X' arabische_Ziffer = 10; case 'L' arabische_Ziffer = 50; case 'C' arabische_Ziffer = 100; case 'D' arabische_Ziffer = 500; case 'M' arabische_Ziffer = 1000; }
-
deine cases schreien doch nach einem : und einem break;
-
So funzt's:
#include "stdafx.h" #include <iostream> int main() { int arabische_Ziffer = 0; char roemische_Ziffer; std::cout << "Gib eine roemische Ziffer ein\n"; std::cin >> roemische_Ziffer; /*zeile 13*/ if ("roemische_Ziffer" == "I") arabische_Ziffer = 1; else if ("roemische_Ziffer" == "V") arabische_Ziffer = 5; else if ("roemische_Ziffer" == "X") arabische_Ziffer = 10; else if ("roemische_Ziffer" == "L") arabische_Ziffer = 50; else if ("roemische_Ziffer" == "C") arabische_Ziffer = 100; else if ("roemische_Ziffer" == "D") arabische_Ziffer = 500; else if ("roemische_Ziffer" == "M") arabische_Ziffer = 1000; if (arabische_Ziffer == 0) std::cout << "Es wurde keine roemische Ziffer eingegeben!" << std::endl; else std::cout << " Zugehörige arabische Ziffer:" << arabische_Ziffer << std::endl; } cin.get(); }
-
if ("roemische_Ziffer" == "I") arabische_Ziffer = 1; else if ("roemische_Ziffer" == "V") arabische_Ziffer = 5; else if ("roemische_Ziffer" == "X") arabische_Ziffer = 10; else if ("roemische_Ziffer" == "L") arabische_Ziffer = 50; else if ("roemische_Ziffer" == "C") arabische_Ziffer = 100; else if ("roemische_Ziffer" == "D") arabische_Ziffer = 500; else if ("roemische_Ziffer" == "M") arabische_Ziffer = 1000;
Und was macht das deiner Meinung nach?
-
JustAnotherNoob schrieb:
deine cases schreien doch nach einem : und einem break;
ach sch**** hab nicht aufgepasst, habs schnell dahingeschmissen, während ich was anderes gemacht habe...

so habs jetzt mal eingefuegt^^
switch(roemische_Ziffer) { case 'I': arabische_Ziffer = 1; break; case 'V': arabische_Ziffer = 5; break; case 'X': arabische_Ziffer = 10; break; case 'L': arabische_Ziffer = 50; break; case 'C': arabische_Ziffer = 100; break; case 'D': arabische_Ziffer = 500; break; case 'M': arabische_Ziffer = 1000; break; }
-
JustAnotherNoob schrieb:
deine cases schreien doch nach einem : und einem break;
Oder gleich
std::map<char, int>verwenden, dann kann man sich die Codeduplizierung (x Zuweisungen) sparen...Und um es nochmals klarzustellen:
if ("roemische_Ziffer" == "I")vergleicht die beiden Strings (bzw. deren Adressen) und ergibt folglich immer
false. Variablennamen werden nicht in Anführungszeichen geschrieben.
-
drakon schrieb:
if ("roemische_Ziffer" == "I") arabische_Ziffer = 1; else if ("roemische_Ziffer" == "V") arabische_Ziffer = 5; else if ("roemische_Ziffer" == "X") arabische_Ziffer = 10; else if ("roemische_Ziffer" == "L") arabische_Ziffer = 50; else if ("roemische_Ziffer" == "C") arabische_Ziffer = 100; else if ("roemische_Ziffer" == "D") arabische_Ziffer = 500; else if ("roemische_Ziffer" == "M") arabische_Ziffer = 1000;
Und was macht das deiner Meinung nach?
Immerhin funktioniert dieses Programm sogar unabhängig von den Benutzereingaben - kann man nicht von jedem Programm behaupten (sozusagen der Heilige Gral der stabilen Programmierung)

Gruß,
Simon2.
-
Simon2 schrieb:
Immerhin funktioniert dieses Programm sogar unabhängig von den Benutzereingaben - kann man nicht von jedem Programm behaupten (sozusagen der Heilige Gral der stabilen Programmierung)

Gruß,
Simon2.
:p
Dann ist aber schon zu viel Arbeit reingesteckt worden.

Das hier finde ich besser. Ist gerade noch so überschaubar und man kann noch weniger Fehler machen.

int main (){}
-
Ich habe auch ein Problem:
ich finde einfach den Fehler nicht... es kommt immer eine Fehlermedung dass versch. Sachen nicht gefunden werden können...// Gruss-Void #include <iostream> using namespace std; void gruss() { cout<<endl; cout<<"Hallo Programmierer!"<<endl; cout<<endl; } int main() { double fahrenheit; double celsius; gruss(); cout<<"Temperatur in Fahrenheit: "; cin<<fahrenheit; celsius =(fahrenheit - 32) * 5.0 / 9.0; cout<<fahrheit <<" Grad Fahrenheit entsprechen " <<celsius <<" Grad Celsius"<<endl; gruss(); return 0; }
-
Dann sag mal, was nicht gefunden werden kann.
-
cin<<fahrenheit;nochmal überdenken...
Du willst gerade den Wert von "fahrenheit" in die Ausgabe schieben...

edit: und: (Z.23)
cout<<fahrheitNächstes mal bitte mit Fehler:
$ g++ test1.cpp -o test1 test1.cpp:31:11: warning: no newline at end of file test1.cpp: In function ‘int main()’: test1.cpp:19: error: no match for ‘operator<<’ in ‘std::cin << fahrenheit’ test1.cpp:23: error: ‘fahrheit’ was not declared in this scope
-
if (arabische_Ziffer == 0)
Unabhängig von Benutzer Eingaben?
Naja, ich weiss ja nicht.
-
drakon schrieb:
...Dann ist aber schon zu viel Arbeit reingesteckt worden. ...
definitiv!
hangman schrieb:
if (arabische_Ziffer == 0)
Unabhängig von Benutzer Eingaben?
Naja, ich weiss ja nicht.Schau Dir das Programm nochmal genau an ... Welche Ablaufpfade lässt der COmpiler wirklich übrig (mal von exceptions abgesehen) ?

Gruß,
Simon2.
-
hi danke für eure antworten hat mit dem switch suprer geklappt. habe nur jetzt wieder ein neues problem. ich würde gerne ein programm starten das ist mein quellcode:
#include "stdafx.h"
#include <process.h>
#include <stdio.h>
void _spawnl_example(void)
{
int result;
result = _spawnl(P_WAIT,"C:\\Programme\Winamp\winamp.exe", "C:\\Programme\Winamp\winamp.exe", NULL);
if (result == -1)
{
perror("Error from spawnl");
exit(1);
}
}
int main(void)
{
_spawnl_example();
return 0;
}die fehlermeldung die ich immer bekommen ist diese hier:
1>------ Erstellen gestartet: Projekt: programm öffnen, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>programm öffnen.cpp
1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'W': Nicht erkannte Folge von Escapesequenz
1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'w': Nicht erkannte Folge von Escapesequenz
1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'W': Nicht erkannte Folge von Escapesequenz
1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'w': Nicht erkannte Folge von Escapesequenz
1>Verknüpfen...
1>Das Manifest wird eingebettet...
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maik\Eigene Dateien\Visual Studio 2008\Projects\programm öffnen\programm öffnen\Debug\BuildLog.htm" gespeichert.
1>programm öffnen - 0 Fehler, 4 Warnung(en)
========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========und wenn ich es dann starte kommt immer:
Error from spawnl: No such file or directory
was mach ich da falsch und die andere frage ist kann ich damit auch lieder starten z.B. mp3 dateien oder nur exe ?
danke für eure antworten
maik
-
Ein einfaches '\' erkennt der Compiler nicht nur beim ersten Mal (nach dem "C:") nicht, sondern auch bei allen folgenden Malen ...
Gruß,
Simon2.
P.S.: Bei den Fehlermeldungen bezeichnet die Zahl in Klammern die Quellcodezeile, die Du Dir als erstes ansehen solltest. (genauer: ..., in der der Compiler Probleme bekommen hat.)
-
hi danke simon2 aber kannst du mir auch sagen was ich da anderst machen soll weil das ist ja der pfad zur datei. lg maik
-
Maik135 schrieb:
hi danke simon2 aber kannst du mir auch sagen was ich da anderst machen soll weil das ist ja der pfad zur datei. lg maik
Du musst statt '\' einfach jedesmal '\' verwenden, wie du es ja auch teilweise getan hast. Google mal nach Escapesequenzen.
-
hi danke funktionier super. hast du auch ne idee wie ich z.b. auch ein leid öffnen kann also eine mp3 datei weil das hier geht ja nur für exe. lg maik