Workshop von Zerd und XBelt

  • C++

  • Zerd
  • 35806 Aufrufe 122 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo zusammen,

    erstmal möchte ich mich bei Zerd für seine Mühen bedanken. Danke für diese wirklich wertvolle Arbeit!

    Auch ich habe den Weg hier her gefunden und taste mich in die Welt von C++ ein. Das Tutorial ist wirklich sehr verständlich und übersichtlich gehalten. Nochmals Danke dafür. Ich bin noch ziemlich am Anfang mit dem Programmieren und mit dem Tutorial. Nach den ersten Schritten stellen sich mir 2 Fragen, wäre nett wenn ihr mir weiterhelfen könntet!

    1. Wieso wird immer "std::" und nicht "using namespace std" genommen? Hat das Nachteile? Sieht ja auf den ersten Blick "übersichtlicher" aus und die Fehlerquote (meiner Meinung nach) wird gesenkt!

    2.Wieso "int main()" und nicht "void main()" ?

    Also wieso

    PHP-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. int main() {
    4. std::string nachname;
    5. std::cout << "Bitte geben Sie Ihren Nachname ein: ";
    6. std::cin >> nachname;
    7. std::cout << "Ihre Eingabe: " << nachname;
    8. return 0;
    9. }


    und nicht

    PHP-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. void main() {
    4. std::string nachname;
    5. std::cout << "Bitte geben Sie Ihren Nachname ein: ";
    6. std::cin >> nachname;
    7. std::cout << "Ihre Eingabe: " << nachname;
    8. }

    ?

    Da ich ja eigentlich kein Rückgabewert erhalte.

    Vielen Dank für eure Hilfe!

    Beste Grüsse,

    Abdurrahmen!
  • Hallo Abdurrahmen,

    zu 1.
    Du kannst natürlich wenn du möchtest using namespace std; benutzen.
    Ich habe es mir angewöhnt die namespaces davor zu schreiben, da es gerade bei großen projekten zu fehler führen kann. Ein Beispiel (ist vielleicht nicht praxisrelevant, aber mir fällt grade nichts anderes ein ;) )

    Stell dir vor du schreibst eine eigene string klasse und hast aber "using namespaces std;" benutzt um den namespace bekannt zu machen. Der compiler weiß in dem fall nicht ob du die string klasse der std benutzen möchtest oder deine eigene. Das ist ja auch der Sinn von namespaces, um eindeutig auf funktionen, klassen o.a. zugreifen zu können.

    zu 2.
    Der C++ standard gibt vor das die main funktion einen Wert zurück geben muss. (ja ich weiß, die compiler können auch void aber werden idr. eine warning ausgeben.) Das Betriebssystem bekommt diesen rückgabewert (errorlevel) mit. 0 wird üblicherweise für "kein fehler" zurück gegeben. Werte > 0 werden als fehler angesehen. Willst du den Rückgabewert des programs auslesen kannst du das mit der Windows systemvariable %ERRORLEVEL% machen.
    Z.B. Starte dein Programm in der command shell. Nachdem es beendet wurde kannst du den Rückgabewert so ausgeben lassen: "echo %ERRORLEVEL%"

    Viel spaß!
    Zerd
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Moin Moin

    Ich habe auch mal wieder ein Problem und zwar wollte ich das kleine Spiel
    3 Gewinnt programmieren. Es funktioniert auch super nur wills ich es noch verbessern und da weiß ich nicht so recht weiter:

    Ich habe folgendes Problem:
    Wenn jemand in der Funktion feldnrSp1 mehrere buchstaben oder ziffern eingibt,
    dann tut das Programm die zweite ziffer gleich mit zu feldnrSp2 übertragen ohne, das der zweite Spieler vorher eine Eingabe machen kann.
    Da dachte ich mir, mache ich aus s1 und s2 ein string, und überprüfe, dass dort nur 1 Ziffer drinsteht. Jedoch kann eine switch case anweisung keine strings verarbeiten, was kann ich tun.
    Hier der vollständige Quellcode:

    PHP-Quellcode

    1. #include <iostream>
    2. #include <cstdlib>
    3. #include <string>
    4. using namespace std;
    5. string Spieler1, Spieler2;
    6. char s1, s2, x, y;
    7. int i;
    8. void feldnrSp1();
    9. void feldnrSp2();
    10. char feld[3][3] = {
    11. {'.','.','.'},
    12. {'.','.','.'},
    13. {'.','.','.'}
    14. };
    15. //nächste verbesserungen: zufallsanfang von spieler 1 und 2, das spieler 1 sonst im vorteil und bessere eingabenverarbeitung, denn wenn eingabe gleich 11 wird x und y gleich vorher definiert
    16. int main()
    17. {
    18. //Zählvariable, welche bei 9 das Programm beendet, da 9 Felder!
    19. i=0;
    20. cout << "Lass uns 3 Gewinnt spielen!" << endl;
    21. cout << "Ihr Spielfeld ist mit Zahlen Nummerriert. Um ein Kreuz oder Kreis" << endl << "setzen zu koennen, geben sie einfach die Spielfeldnummer ein!" << endl;
    22. cout << "{'1','2','3'}" << endl << "{'4','5','6'}" << endl << "{'7','8','9'}" << endl;
    23. cout << "Spieler 1 ihr Symbol ist das x - Bitte geben sie ihren Namen ein!" << endl;
    24. getline (cin,Spieler1);
    25. cout << "Spieler 2 ihr Symbol ist der y - Bitte geben sie ihren Namen ein!" << endl;
    26. getline (cin,Spieler2);
    27. do {
    28. feldnrSp1();
    29. system("cls");
    30. cout << "Es ergibt sich folgendes Zwischenergebnis: " << endl;
    31. cout << endl;
    32. cout << feld[0][0] << " " << feld[0][1] << " " << feld[0][2] << endl;
    33. cout << feld[1][0] << " " << feld[1][1] << " " << feld[1][2] << endl;
    34. cout << feld[2][0] << " " << feld[2][1] << " " << feld[2][2] << endl;
    35. cout << endl;
    36. if(feld[0][0] == 'x' && feld [0][1] == 'x' && feld[0][2] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    37. if(feld[1][0] == 'x' && feld [1][1] == 'x' && feld[1][2] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    38. if(feld[2][0] == 'x' && feld [2][1] == 'x' && feld[2][2] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    39. if(feld[0][0] == 'x' && feld [1][0] == 'x' && feld[2][0] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    40. if(feld[0][1] == 'x' && feld [1][1] == 'x' && feld[2][1] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    41. if(feld[0][2] == 'x' && feld [1][2] == 'x' && feld[2][2] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    42. if(feld[2][0] == 'x' && feld [1][1] == 'x' && feld[0][2] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    43. if(feld[0][0] == 'x' && feld [1][1] == 'x' && feld[2][2] == 'x') {cout << Spieler1 << " du hast gewonnen!" << endl; break;};
    44. i++;
    45. if(i==9) break;
    46. //Wiederholung vom oberen Teil für Spieler 2
    47. feldnrSp2();
    48. system("cls");
    49. cout << "Es ergibt sich folgendes Zwischenergebnis: " << endl;
    50. cout << endl;
    51. cout << feld[0][0] << " " << feld[0][1] << " " << feld[0][2] << endl;
    52. cout << feld[1][0] << " " << feld[1][1] << " " << feld[1][2] << endl;
    53. cout << feld[2][0] << " " << feld[2][1] << " " << feld[2][2] << endl;
    54. cout << endl;
    55. if(feld[0][0] == 'y' && feld [0][1] == 'y' && feld[0][2] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    56. if(feld[1][0] == 'y' && feld [1][1] == 'y' && feld[1][2] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    57. if(feld[2][0] == 'y' && feld [2][1] == 'y' && feld[2][2] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    58. if(feld[0][0] == 'y' && feld [1][0] == 'y' && feld[2][0] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    59. if(feld[0][1] == 'y' && feld [1][1] == 'y' && feld[2][1] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    60. if(feld[0][2] == 'y' && feld [1][2] == 'y' && feld[2][2] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    61. if(feld[2][0] == 'y' && feld [1][1] == 'y' && feld[0][2] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    62. if(feld[0][0] == 'y' && feld [1][1] == 'y' && feld[2][2] == 'y') {cout << Spieler2 << " du hast gewonnen!" << endl; break;};
    63. i++;
    64. if(i==9) break;
    65. }
    66. while (
    67. 1
    68. );
    69. cout << "ENDE" << endl;
    70. system("PAUSE");
    71. return 0;
    72. }
    73. void feldnrSp1()
    74. {
    75. cout << Spieler1 << " du bist an der Reihe, wie lautet ihre Feldnr. ?" << endl;
    76. cin >> s1;
    77. switch (s1)
    78. { case '1':
    79. if(feld[0][0]=='y' || feld[0][0]=='x')
    80. {feldnrSp1();}
    81. else {feld[0][0] = 'x';}
    82. break;
    83. case '2':
    84. if(feld[0][1]=='y' || feld[0][1]=='x')
    85. {feldnrSp1();}
    86. else {feld[0][1] = 'x';}
    87. break;
    88. case '3':
    89. if(feld[0][2]=='y' || feld[0][2]=='x')
    90. {feldnrSp1();}
    91. else {feld[0][2] = 'x';}
    92. break;
    93. case '4':
    94. if(feld[1][0]=='y' || feld[1][0]=='x')
    95. {feldnrSp1();}
    96. else {feld[1][0] = 'x';}
    97. break;
    98. case '5':
    99. if(feld[1][1]=='y' || feld[1][1]=='x')
    100. {feldnrSp1();}
    101. else {feld[1][1] = 'x';}
    102. break;
    103. case '6':
    104. if(feld[1][2]=='y' || feld[1][2]=='x')
    105. {feldnrSp1();}
    106. else {feld[1][2] = 'x';}
    107. break;
    108. case '7':
    109. if(feld[2][0]=='y' || feld[2][0]=='x')
    110. {feldnrSp1();}
    111. else {feld[2][0] = 'x';}
    112. break;
    113. case '8':
    114. if(feld[2][1]=='y' || feld[2][1]=='x')
    115. {feldnrSp1();}
    116. else {feld[2][1] = 'x';}
    117. break;
    118. case '9':
    119. if(feld[2][2]=='y' || feld[2][2]=='x')
    120. {feldnrSp1();}
    121. else {feld[2][2] = 'x';}
    122. break;
    123. default:
    124. feldnrSp1();
    125. }
    126. }
    127. void feldnrSp2()
    128. {
    129. cout << Spieler2 << " du bist an der Reihe, wie lautet ihre Feldnr. ?" << endl;
    130. cin >> s2;
    131. switch (s2)
    132. { case '1':
    133. if(feld[0][0]=='x' || feld[0][0]=='y')
    134. {feldnrSp2();}
    135. else {feld[0][0] = 'y';}
    136. break;
    137. case '2':
    138. if(feld[0][1]=='x' || feld[0][1]=='y')
    139. {feldnrSp2();}
    140. else {feld[0][1] = 'y';}
    141. break;
    142. case '3':
    143. if(feld[0][2]=='x' || feld[0][2]=='y')
    144. {feldnrSp2();}
    145. else {feld[0][2] = 'y';}
    146. break;
    147. case '4':
    148. if(feld[1][0]=='x' || feld[1][0]=='y')
    149. {feldnrSp2();}
    150. else {feld[1][0] = 'y';}
    151. break;
    152. case '5':
    153. if(feld[1][1]=='x' || feld[1][1]=='y')
    154. {feldnrSp2();}
    155. else {feld[1][1] = 'y';}
    156. break;
    157. case '6':
    158. if(feld[1][2]=='x' || feld[1][2]=='y')
    159. {feldnrSp2();}
    160. else {feld[1][2] = 'y';}
    161. break;
    162. case '7':
    163. if(feld[2][0]=='x' || feld[2][0]=='y')
    164. {feldnrSp2();}
    165. else {feld[2][0] = 'y';}
    166. break;
    167. case '8':
    168. if(feld[2][1]=='x' || feld[2][1]=='y')
    169. {feldnrSp2();}
    170. else {feld[2][1] = 'y';}
    171. break;
    172. case '9':
    173. if(feld[2][2]=='x' || feld[2][2]=='y')
    174. {feldnrSp2();}
    175. else {feld[2][2] = 'y';}
    176. break;
    177. default:
    178. feldnrSp2();
    179. }
    180. }
    Alles anzeigen


    Sorry ist leider etwas lang.
    Dann habe ich noch 2 Fragen, wie erstelle ich eine Zufallsfunktion, denn bei mir beginnt immer Spieler1 und damit ist er doch klar im Vorteil.
    Dann fällt euch sicherlich auf, das feldnrSp1 und feldnrSp2 fast identisch sind, außer jeweils das x und das y welches sich unterscheidet, kann ich das einfacher bzw. kürzer umsetzen ?


    mfg. Chaosbohne

    Riesen Dank schonmal im Voraus
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Hi Chaosbohne!

    Ich hatte leider nicht eher zeit, habe mich aber mal rangesetzt und das ganze ein wenig umgebaut. Es ist etwas kürzer geworden und ich habe komplett auf globale variablen verzichtet. Die checkResult Funktion ist geschmackssache, aber mir persönlich gefällt es so besser ;)
    Falls du was nicht verstehst versuch ichs zu erklären!!

    Viel Spaß
    Gruß Zerd

    PHP-Quellcode

    1. #include <iostream>
    2. #include <cstdlib>
    3. #include <string>
    4. using namespace std;
    5. //nächste verbesserungen: zufallsanfang von spieler 1 und 2, das spieler 1 sonst im vorteil und bessere eingabenverarbeitung, denn wenn eingabe gleich 11 wird x und y gleich vorher definiert
    6. void printField(char feld[][3]) {
    7. cout << "Es ergibt sich folgendes Zwischenergebnis: " << endl;
    8. cout << endl;
    9. for(int j = 0; j < 3; j++){
    10. for(int k = 0; k < 3; k++){
    11. cout << feld[j][k] << " ";
    12. }
    13. cout << endl;
    14. }
    15. cout << endl;
    16. }
    17. bool checkResult(bool bPlayer1, char feld[][3]) {
    18. char fieldValue1 = 'x';
    19. if(!bPlayer1)
    20. fieldValue1 = 'y';
    21. bool ret = true;
    22. for(int k = 0; k < 3; k++) {
    23. for(int j = 0; j < 3; j++)
    24. ret = ret && (feld[j][k] == fieldValue1);
    25. if(ret)
    26. return true;
    27. ret = true;
    28. for(int j = 0; j < 3; j++)
    29. ret = ret && (feld[k][j] == fieldValue1);
    30. if(ret)
    31. return true;
    32. ret = true;
    33. }
    34. if(feld[2][0] == fieldValue1 && feld [1][1] == fieldValue1 && feld[0][2] == fieldValue1)
    35. return true;
    36. if(feld[0][0] == fieldValue1 && feld [1][1] == fieldValue1 && feld[2][2] == fieldValue1)
    37. return true;
    38. return false;
    39. }
    40. void handlePlayer(bool bPlayer1, char feld[][3]) {
    41. char fieldValue1 = 'y';
    42. char fieldValue2 = 'x';
    43. char s2;
    44. if(!bPlayer1) {
    45. fieldValue1 = 'x';
    46. fieldValue2 = 'y';
    47. }
    48. cin >> s2;
    49. switch (s2)
    50. { case '1':
    51. if(feld[0][0]==fieldValue1 || feld[0][0]==fieldValue2)
    52. {handlePlayer(bPlayer1, feld);}
    53. else {feld[0][0] = fieldValue2;}
    54. break;
    55. case '2':
    56. if(feld[0][1]==fieldValue1 || feld[0][1]==fieldValue2)
    57. {handlePlayer(bPlayer1, feld);}
    58. else {feld[0][1] = fieldValue2;}
    59. break;
    60. case '3':
    61. if(feld[0][2]==fieldValue1 || feld[0][2]==fieldValue2)
    62. {handlePlayer(bPlayer1, feld);}
    63. else {feld[0][2] = fieldValue2;}
    64. break;
    65. case '4':
    66. if(feld[1][0]==fieldValue1 || feld[1][0]==fieldValue2)
    67. {handlePlayer(bPlayer1, feld);}
    68. else {feld[1][0] = fieldValue2;}
    69. break;
    70. case '5':
    71. if(feld[1][1]==fieldValue1 || feld[1][1]==fieldValue2)
    72. {handlePlayer(bPlayer1, feld);}
    73. else {feld[1][1] = fieldValue2;}
    74. break;
    75. case '6':
    76. if(feld[1][2]==fieldValue1 || feld[1][2]==fieldValue2)
    77. {handlePlayer(bPlayer1, feld);}
    78. else {feld[1][2] = fieldValue2;}
    79. break;
    80. case '7':
    81. if(feld[2][0]==fieldValue1 || feld[2][0]==fieldValue2)
    82. {handlePlayer(bPlayer1, feld);}
    83. else {feld[2][0] = fieldValue2;}
    84. break;
    85. case '8':
    86. if(feld[2][1]==fieldValue1 || feld[2][1]==fieldValue2)
    87. {handlePlayer(bPlayer1, feld);}
    88. else {feld[2][1] = fieldValue2;}
    89. break;
    90. case '9':
    91. if(feld[2][2]==fieldValue1 || feld[2][2]==fieldValue2)
    92. {handlePlayer(bPlayer1, feld);}
    93. else {feld[2][2] = fieldValue2;}
    94. break;
    95. default:
    96. {handlePlayer(bPlayer1, feld);}
    97. }
    98. }
    99. int main()
    100. {
    101. //Zählvariable, welche bei 9 das Programm beendet, da 9 Felder!
    102. int i=0;
    103. string Spieler1, Spieler2;
    104. char feld[3][3] = {
    105. {'.','.','.'},
    106. {'.','.','.'},
    107. {'.','.','.'}
    108. };
    109. cout << "Lass uns 3 Gewinnt spielen!" << endl;
    110. cout << "Ihr Spielfeld ist mit Zahlen Nummerriert. Um ein Kreuz oder Kreis" << endl << "setzen zu koennen, geben sie einfach die Spielfeldnummer ein!" << endl;
    111. cout << "{'1','2','3'}" << endl << "{'4','5','6'}" << endl << "{'7','8','9'}" << endl;
    112. cout << "Spieler 1 ihr Symbol ist das x - Bitte geben sie ihren Namen ein!" << endl;
    113. getline (cin,Spieler1);
    114. cout << "Spieler 2 ihr Symbol ist der y - Bitte geben sie ihren Namen ein!" << endl;
    115. getline (cin,Spieler2);
    116. bool finished = false;
    117. do {
    118. bool bPlayer1 = true;
    119. for(int j = 0; j < 2; j++) {
    120. if(bPlayer1)
    121. cout << Spieler1 << " du bist an der Reihe, wie lautet ihre Feldnr. ?" << endl;
    122. else
    123. cout << Spieler2 << " du bist an der Reihe, wie lautet ihre Feldnr. ?" << endl;
    124. handlePlayer(bPlayer1, feld);
    125. system("cls");
    126. printField(feld);
    127. if(checkResult(bPlayer1, feld)) {
    128. if(bPlayer1)
    129. cout << Spieler1 << " du hast gewonnen!" << endl;
    130. else
    131. cout << Spieler2 << " du hast gewonnen!" << endl;
    132. finished = true;
    133. break;
    134. }
    135. i++;
    136. if(i==9) {
    137. finished = true;
    138. break;
    139. }
    140. bPlayer1 = !bPlayer1;
    141. }
    142. }
    143. while ( !finished );
    144. cout << "ENDE" << endl;
    145. system("PAUSE");
    146. return 0;
    147. }
    Alles anzeigen
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • EDIT: Ok die taste STRG und F5 haben's gelöst!

    Hallo!

    Hab mir jetzt gerade alles gedowloadet und auch
    durchgelesen doch wenn ich eine Exe Starten will
    ist es das das keine EXE erstellt wird!

    Bin da ganz am anfang zum testen:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. std::cout << "Hello World" << std::endl;
    4. return 0;
    5. }


    Und das speichere ich ab in dem ich F7 ab will es starten
    doch es kommt dann das ,,öffnen mit'' Fenster!

    Was mach ich denn da Falsch?
    mfg wurM_9
    MEINE UPLOADS

    Lg StOn€

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von StOn€ ()

  • Hey Zerd,

    Danke für deine Mühen, dass du meinen Code umgeschrieben hast,
    selbstverständlich werde ich mich da mal durcharbeiten.

    Auf den ersten Blick sieht einiges für mich neu aus.
    Leider kann ich nur selten mit c++ arbeiten, da ich z.Z. beim Bund bin und
    da viel zutun habe.
    Bei Fragen komme ich selbstverständlich wieder auf dich zurück.

    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Hey Zerd,

    ich will C++ lernen und würde auch gerne deinen Kurs durchgehen...alles so not the problem...aber was a problem ist...die 2005 Version von Visual Basic bekommt man nicht mehr von Microsoft...ich bin dem Link gefolgt und habe auch dort gesucht aber nix gefunden....gut dachte ich mir...nimmste einfach die 2008 Version...nix da...da ist garnichts gleich wie in deinem Tread von den Screenshots.

    Hat einer die exe´n noch???

    Würde es wirklich gerne lernen..

    LG Nuramon
  • 2008 nutzt die SQL datenbank. die Version ist auch komplett auch Englisch. habe gerade mal geschaut ob ich da so ein paar ähnlichkeiten finde aber die anfangsschritte kann ich so nicht ganz ausführen da die Menüführung bei mir ganz anders ist
  • Zum einstellen der pfade gehst du über

    Tools->Options -> Projects and Solutions -> VC++ Directories
    Da musst du dann die Plattform SDK Pfade angeben

    Die restlichen Sachen (Neues Projekt) sieht bei mir genauso aus und ist nur auf englisch übersetzt, das solltest du hinbekommen :)
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Hat sich erledigt...mit der Deutschen Version habe ich alles so wie es sein soll...die Englische ist da doch etwas anders..

    LG Nuramon

    Hallo Zerd,

    so ich habe jetzt mal das erste durchführbare Programm geschrieben aus deinem Workshop.
    Es beinhaltet folgenden Zeilen:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int eingabe;
    4. std::cout << "Bitte geben Sie eine Zahl ein: ";
    5. std::cin >> eingabe;
    6. std::cout << "Ihre Eingabe war: " << eingabe;
    7. return 0;
    8. }


    Laufen tut es soweit. Das Problem: Er Fragt nach der Zahl...nachdem ich die Zahl eingegeben habe passiert nix...drücke ich auf Enter schliest sich das Programm.
    Laut Quelltext sollte er mir aber meine eingegebene Zahl anzeigen.

    Ich habe den Quelltext einmal selbst abgeschrieben und einmal Kopiert um zu sehen ob ich irgendwo einen Fehler drinne habe aber das gleiche passiert auch bei dem Kopierten Quelltext.

    Wo liegt da der Fehler drinn??

    LG Nuramon

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int eingabe1, eingabe2, eingabe3, ergebniss;
    4. std::cout <<"Bitte geben Sie drei Zahl ein, die erste: ";
    5. std::cin >> eingabe1;
    6. std::cout <<"Ihre zweite Zahl: ";
    7. std::cin >> eingabe2;
    8. std::cout <<"Ihre dritte Zahl: ";
    9. std::cin >> eingabe3:
    10. ergebniss = eingabe1 + eingabe2 + eingabe3;
    11. std::cout <<"Die Summe Ihrer Zahlen ist " << ergebniss;
    12. return 0;
    13. }
    Alles anzeigen


    Bei dem zeigt er mir 2 Fehler an bei 1.

    ???????
    Versteh die Welt nicht...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Tripplepost

  • Hallo Nuramon...

    Benutz bitte die editier funktion und schreib nicht jedes mal einen neuen Beitrag (steht so auch in den forenrules).

    Das erste Programm was du abgetippt hast ist so schon richtig. Das Fenster mit der Ausgabe wird nur direkt wieder geschlossen, so dass du die ausgabe nicht sehen kannst. Um das zu umgehen kannst du die erstellte exe datei entweder in einem konsolenfenster aufrufen oder mit Strg+F5 starten, dann sollte das Fenster stehen bleiben.


    Bei deinem zweiten programm hast du ein : statt einem ; in der Zeile

    Quellcode

    1. std::cin >> eingabe3:

    es muss aber

    Quellcode

    1. std::cin >> eingabe3;
    heißen
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • hi all,

    habe irgendwie Probleme mit Arrays.(oder die mit mir, egal)
    Ich lerne mit der DVD von v2b C++ 2006 und im Kapitel Arrays (Array-Größe und Schleifen) schreibt er genau diesen Code hier um die größe der arrays zu sehen, ja bei ihm klappt es und bei mir nicht...ja bin ich so blöd oder warum zeigt mir dev++ immer bei der Ausgabe diesen Fehler.
    Ich benutze auch noch ein Buch aus der Biblithek und da passiert genau der gleiche Fehler bei der Ausgabe. :ööm: Was ist der Trick?

    #include <cstdlib>
    #include <iostream>
    using namespace std;

    int main(int argc, char *argv[])
    {
    char carry[10];

    carry[0] = 'a';
    carry[1] = 'b';
    carry[2] = 'c';

    char array[] = {'x','y','z'};


    // hier ist ein Fehler, ich finde ihn aber nicht! er sagt carray undeclared (first use this function)

    cout << "Groesse des Arrays: " << sizeof( carray ) << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
    }

    gruß
    kaufikaufi

    p.s. ja hab den Fehler Gestern noch selber gefunden:rolleyes:
    oh man...
    trotzdem Danke für den Hinweis Biernase.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von kaufikaufi ()

  • Konstanzen?? Du meinst sicher Konstanten... Ich wüsste nicht warum das ein tutorial wert wäre... Wenn du fragen hast stell die einfach hier (vielleicht ändert sich dann meine Meinung noch und ich schreib dazu noch was). Aber wie man ja sieht ist die Zeit die ich ins tutorial stecke sehr stark zurück gegangen... Vielleicht komm ich ja bald endlich mal dazu Objektorientierung zu beginnen... wäre mal an der Zeit...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • ja Zerd ich frage deshalb weil ich bei meinen Multiple Choice Test auf V2B diese Frage immer falsch beantworte.

    Wie dürfen Variablen oder Konstanten heißen?

    - 1er-zahl = ...
    - GUT = ... ~
    - ...besser = ... ~
    - bool = ...

    ~ Lösung
    warum nicht bool? steht der Wahrheitswert allein für sich?
  • Variablen in C++ beginnen immer mit einem Buchstaben ( ein _ ist auch gültig).
    Ich verstehe bei deiner Frage die ... nicht, sollen das die typangaben darstellen???

    bool ist kein gültiger variablenname weil bool ein datentyp ist (wahr / falsch). D.h. als Variablenname ist das nicht gültig.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Ich verstehe bei deiner Frage die ... nicht, sollen das die typangaben darstellen???

    diese Punkte haben keinerlei Bedeutung,
    Ich habe das so vom Multiple Choice Test von der Lehr DVD übernommen.

    gruß
    kaufikaufi

    p.s. man ich seh immer nur DOS Fenster, wann können wir mal einen Schritt weiter gehen?
    Ich will endlich meinen eigenen VST Synth entwerfen und den steuern und dann in Fruity Loops benutzen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von kaufikaufi ()

  • Ein Schritt weiter würde bedeuten das du die Grundlagen beherrschst... Nach deiner letzten Frage glaube ich nich das du das schon tust ;)

    Aber abgesehen davon zwingt dich ja niemand bei dem DOS Fenster zu bleiben. Wenn du für dich entscheidest weiter zu gehen, dann tu das. Aber bevor du das machst wirst du nicht drum herum kommen dich ausgiebig mit zeigern und objektorientierung zu beschäftigen.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Huhu,

    hab hier mal ne Lösung für die beiden Makro Aufgaben:

    PHP-Quellcode

    1. #include <iostream>
    2. #define SQRE(x) ((x) * (x))
    3. #define BIGGER(x,y) (((x) > (y)) ? (x) : (y))
    4. int main()
    5. {
    6. std::cout << SQRE(5+1) << std::endl;
    7. std::cout << BIGGER(3,8) << std::endl;
    8. std::cout << BIGGER(5,1) << std::endl;
    9. return 0;
    10. }
    Alles anzeigen


    Super Workshop weiter so!

    Mit freundlichen Grüßen,
    sh4d0w89