PDA

Visualizza la versione completa : [C++] Errore "expected primary-expression before '.' token"


francecco
13-11-2006, 10:16
/*Catena di anelli*/
#include <iostream>
#include <cstdlib>
#include <conio.h>

using namespace std;

struct anello
{
bool tipo;
/*true = ferro - false = rame*/
bool catena[1000];
};

const int maxrame = 5;

anello carica_catena(const int ramemassimo, int num, anello catena[1000])
{
for(int i=0; i<num; i++)
{
anello.catena[i] = false;

}
}

int main()
{
char scelta;
bool flag = false, tipo;
int n = 0;

do
{
system("cls");
cout << " I ) Inizializza catena vuota." << endl;
cout << " A ) Aggiungi anello." << endl;
cout << " E ) Elimina anello." << endl;
cout << " S ) Stampa della catena." << endl;
cout << " ..::Any key fot exit::.." << endl;
cin >> scelta;
switch(scelta)
{
case 'I':
cout << "Numero di anelli vuoi caricare:";
cin >> n;
carica_catena(maxrame,n,catena);
break;
case 'A':
break;
case 'E':
break;
case 'S':
break;
default:
flag = true;
}
}
while(flag != true);
getch();
return 0;
}


Ho scritto questo codice ma mi da un errore alla riga 21
del tipo : 21 expected primary-expression before '.' token
ed alla riga 46 `catena' undeclared (first use this function)
come lo posso risolvere.

francecco
13-11-2006, 10:25
nessuno può aiutarmi ??

alka
13-11-2006, 10:39
Originariamente inviato da francecco
nessuno può aiutarmi ??
E il linguaggio nel titolo?

francecco
13-11-2006, 10:47
E' c++ credevo si riconoscesse in ambiente dev

francecco
13-11-2006, 10:49
Ma scusate che tipo di errore è questo: expected primary-expression before '.' token

alka
13-11-2006, 11:27
Originariamente inviato da francecco
E' c++ credevo si riconoscesse in ambiente dev
Il linguaggio va indicato nel titolo, come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887), poiché non devo essere costretto ad aprire la discussione per sapere se posso rispondere o meno. :fagiano:

Correggo il titolo.

francecco
13-11-2006, 11:35
Grazie , ci avevo provato io ma non mi era riuscito, allora qualcuno mi sa rispondere , ho ancora modifiacto il codice ma l'errore riamane:

#include <iostream>
#include <cstdlib>
#include <conio.h>

using namespace std;

struct anello
{
bool tipo;
/*true = ferro - false = rame*/
};

const int maxrame = 5;

void carica_catena(const int ramemassimo, int num, anello catena[1000])
{
for(int i=0; i<num; i++)
{
anello.catena[i] = 20;
cout << anello.catena[i];
}
}


int main()
{
anello catena[1000];
char scelta;
bool flag = false, materiale;
int n = 0, pos = 0, sceglitipo;

do
{
system("cls");
cout << " I ) Inizializza catena vuota." << endl;
cout << " A ) Aggiungi anello." << endl;
cout << " E ) Elimina anello." << endl;
cout << " S ) Stampa della catena." << endl;
cout << " ..::Any key fot exit::.." << endl;
cin >> scelta;
switch(scelta)
{
case 'I':
cout << "Numero di anelli vuoi caricare: ";
cin >> n;
carica_catena(maxrame,n,catena);
break;
case 'A':
break;
case 'E':
break;
case 'S':
break;
default:
flag = true;
}
}
while(flag != true);
getch();
return 0;
}

oregon
13-11-2006, 13:44
Il problema e' legato a questo tipo di istruzione

anello.catena[i] = 20;

che, secondo me, non ha significato ...

Te lo dico perche'

1) anello e' una struct e quindi non va scritto ...

2) si dovrebbe usare l'array e l'unico membro della struttura, cioe'

catena[i].tipo

ma non puoi assegnare il valore 20 (che vuol dire?) ... semmai un true o un false ...

catena[i].tipo = true;

Ma a questo punto non so piu' qual era la tua intenzione ...

Loading