C++ Help

09/09/2014 19:35 Prof.MindFreak#1
Guten Tag,

Ich lerne gerade C++ wo ist der fehler ?
PHP Code:
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <stdlib.h>

using namespace std;
char abfrage;

int main (void)
{
    
SetConsoleTitle(_T("Abfrage"));
    
    
cout << "Willkommen im Lernen Fenster"
         
<< endl
         
<< "Heute lernen wir C++"
         
<< endl
         
<< "Guten Tag, sind sie 21 Jahre Jung ? Ja (j) oder Nein (n)"

    
cin >> abfrage;  
    
    if (
abfrage == 'j');
    {
        
cout << "Ich habe es gewusst..." << endl;
    }
    
    else if (
abfrage == 'n');
    {
        
cout << "Schade, ich dachte Sie weahren 21"
             
<< "Können Sie mir ihr alter verratten ? Ja (j) oder Nein (n)";
    }
    
   
    
cin.sync();
cin.get();
return 
0;

Fehler:
PHP Code:
else without a prevoius if 
09/09/2014 20:10 ƬheGame#2
No ";" behind
Quote:
Code:
if (abfrage == 'j');
and

Quote:
Code:
else if (abfrage == 'n');
This should work:
Code:
#include <windows.h>
#include <iostream> // For cin, cout and endl
#include <tchar.h> 
#include <stdlib.h> 

using namespace std; 
char abfrage; 

int main (void) 
{ 
    SetConsoleTitle(_T("Abfrage")); 
     
    cout << "Willkommen im Lernen Fenster" 
         << endl
         << "Heute lernen wir C++" 
         << endl
         << "Guten Tag, sind sie 21 Jahre Jung ? Ja (j) oder Nein (n)";  

    cin >> abfrage;   
     
    if (abfrage == 'j') // no ";" here with a ";" it wont run the code in the brackets
    { 
        cout << "Ich habe es gewusst..." << endl;
    } 
     
    else if (abfrage == 'n') // no ";" here with a ";" it wont run the code in the brackets
    { 
        cout << "Schade, ich dachte Sie weahren 21"
             << endl // i added this so it looks betther in the console (text was to long)
             << "Können Sie mir ihr alter verratten ? Ja (j) oder Nein (n)"; 
    } 
     
    
     
cin.sync(); 
cin.get(); 
return 0; 
}
09/09/2014 20:10 Padmak#3
Dass du ein else hast, ohne vorher ein if zu haben.
Spaß beiseite, schmeiß die ; hinter if und else if raus

€: damn, zu langsam. iostream ist aber schon included

Padmak
09/09/2014 20:14 ƬheGame#4
Quote:
Originally Posted by Padmak View Post
Dass du ein else hast, ohne vorher ein if zu haben.
Spaß beiseite, schmeiß die ; hinter if und else if raus

€: damn, zu langsam. iostream ist aber schon included

Padmak
Copy pasta fail :facepalm:

Thanks padmak
09/09/2014 20:16 Prof.MindFreak#5
Danke wieder was gelernt :D

Für was ist das #include <windows.h>
und das #include <tchar.h>
09/10/2014 07:53 Computerfreek#6
Quote:
Originally Posted by Prof.MindFreak View Post
Danke wieder was gelernt :D

Für was ist das #include <windows.h>
und das #include <tchar.h>
Für folgende Zeile
Code:
    SetConsoleTitle(_T("Abfrage"));

TCHAR ist fürs Encoding. Es gibt in der WinAPI z.B. SetConsoleTitleA für ANSI Codierte Strings und SetConsoleTitleW für Unicodestrings.
Damit du nicht immer selbst entscheiden musst, welches Encoding du für welchen String möchtest gibt es hierfür _T welches dir den Projekteinstellungen entsprechend die Kodierung auswählt. So kannst du einfach SetConsoleTitle verwenden (welches dann intern entsprechend SetConsoleTitleW oder SetConsoleTitleA aufruft) ohne das ganze explizit benennen zu müssen.

Die windows.h brauchst für die die SetConsoleTitle API, welche windowsspezifisch ist.

TL;DR:
tchar ist zur Kodierungskompatibilität und windows damit du SetConsoleTitle benutzen kannst.