Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » typen mit einer basis sind nicht aggregate

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.06.2016, 19:38 Uhr
emma



Ich habe das folgende Programm in Xcode geschrieben und es funktioniert.
aber wenn ich den Code in Visual basic kopiert habe, funktioniert es nicht!
es kommt der Fehler "vector <" komische symbole"> typen mit einer basis sind nicht aggregate" !!


C++:
#include <iostream>
#include<vector>
using namespace std;
void Zufallszahlen(vector<int> x);
void Eingabe(int x)
{
    vector<int> input = { 1, 2, 3, 4, 5, 6,7 };
    
    cout << "Es soll 6 verschiedene Zahlen eingegeben werden!" << endl;
    for (int i = 1; i <= 6; i++)
    {
        
        cout << "Bitte geben Sie Ihre " << i << ". Zahl ein.\n";
        cin >> input[i];
        while (cin.fail() || input[i] <= 0 || input[i]>=50)
        {
            cout << "FEHLER!\n";
            cout << " Die eingegebene Zahlen sollen natuerliche Zahlen zwischen 1 und 49 sein \n";
            cout << "Bitte geben Sie Ihre " << i << ". Zahl ein.\n";
            cin.clear();
            fflush(stdin);
            cin >> input[i];
        }
        
        
        for (int j = 1; j < i; j++)
        {
            if (input[j] == input[i])
            {
                cout << "FEHLER!\n";
                cout << " Die Zahlen sollen nicht gelich! \n";
                cin.clear();
                fflush(stdin);
                char a;
                cout << " Druecken sie eine beliebige Tase.\n";
                cin >> input[a];
                return;
            }
        }
    }
    Zufallszahlen(input);
}
void Zufallszahlen(vector<int> x)
{
    vector<int> input = x;
    vector<int>zufall = { 1, 2, 3, 4, 5, 6,7 };
    
    for (int j = 1; j<=6; j++)
    {
        zufall[j] = ((rand() % 48) + 1);
        
        for (int t = 1; t < j; t++)
        {
            while (zufall[t] == zufall[j])
            {
                zufall[j] = (rand() % 48) + 1;
                t = 0;
            }
        }
        
        cout << "Zufallzahl : "  << zufall[j] << endl;
    }
    
    int Treffer = 0;
    for (int m = 1; m <= 6; m++)
    {
        for (int n = 1; n <= 6; n++)
        {
            if (input[m] == zufall[n])
            {
                Treffer = Treffer + 1;
            }
        }
    }
    if (Treffer == 0)
    {
        cout << "\n Sie haben Pech gehabt.\n";
    }
    
    else
    {
        cout << "\nSie haben " << Treffer << " Zahlen gewonnen!\n\n";
    }
    
    
    cout << "\nMoechten Sie noch mal mit neuen Zahlen spielen oder es nochmal mit den gleichen Zahlen spielen?\n";
    cout << "(1 fuer neuen Zahlen/ 2 fuer gelichen Zahlen)\n";
    int wahl;
    cin >> wahl;
    while (cin.fail() || (wahl != 1 && wahl != 2))
    {
        cout << "Bitte geben Sie 1 oder 2 ein.\n";
        cin.clear();
        fflush(stdin);
        cin >> wahl;
    }
    
    if (wahl == 1)
    {
        Eingabe(0);
    }
    else
        Zufallszahlen(input);
    
}
int main()
{
    Eingabe(0);
    
    system("pause");
    return 0;
}



kann jemand mir sagen, wie kann der Fehler beheben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.06.2016, 10:07 Uhr
ao

(Operator)



Zitat von emma:
aber wenn ich den Code in Visual basic kopiert habe, funktioniert es nicht!

In Visual Basic??

Falls du Visual C++ meinst: Du musst den Compiler so einstellen, dass er einen aktuellen C++-Sprachstandard verwendet. Die Fehlermeldung kommt vielleicht daher, dass VC++ in der Voreinstellung nach C++98 übersetzt, und damals gab es die vector-Initialisierung mit den geschweiften Klammern noch nicht.

Wie man die Spracheinstellung bei Visual-C++ ändert, kann ich dir nicht sagen, das musst du selber herausfinden. Hier bei mir (gcc) hat die Option -std=c++0x geholfen. Das kann aber bei dir anders sein.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.06.2016, 13:07 Uhr
Tommix



Hallo,
wieso befüllst Du die Vektoren überhaupt initial? Mit

C++:
vector<int> input(7);
//...
vector<int>zufall(7);


übersetzen es auch ältere Compiler.
Allerdings solltest Du die Warnungen, die dann noch übrig bleiben ernst nehmen.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: