vbmaster Posted January 6, 2006 at 05:55 PM Report #11006 Posted January 6, 2006 at 05:55 PM Pois é pessoal, ando aqui com a cabeça à nora a tentar perceber os códigos do meu bookzeco de c++, ainda por cima acompanhados de breves e "esclarecedoras" explicações.... Enfim, vou tentando sobreviver... Nesta código que o livro apresenta o g++ retorna erros maioritariamente de variáveis fora da scope... mas eu pensava que elas eram variáveis globais, porque está a dar este erro? Look at it: (este código basicamente, pede-nos que escrevamos palavras, e estas são auomaticamente adicionadas ao struct caso lá não estejam e depois são retornadas com o número de vezes que estiveram presentes no nosso texto... pelo menos foi o que percebi) :x #include <iostream> using namespace std; const int max = 25; struct pair { char name[max]; int val; }; const words = 1024; pair vec[words]; pair &find (const char* p) { for (int i = 0; vec[i].val && strcmp(p ,vec[i]name); ++i); return vec[i]; } void count (char* word) { pair& res = find(word); if (res.val == 0) strcpy(res.name, word); ++res.val; } int main () { char buf[max]; cout << "Escrever palavras, terminar com EOF (CTRL z)" << endl; while (cin >> buf ) count(buf); for (int i = 0; vec[i].val; ++i) cout << vec[i].name << ":" << vec[i].val << endl; while(cin.get () == '\0'); return 0; }
neon_prannock Posted January 6, 2006 at 09:23 PM Report #11042 Posted January 6, 2006 at 09:23 PM Bem, eu experimentei o código no Dev-C++. const words = 1024; <- aqui esqueceste-te de indicar o tipo, int provavelmente. Depois parece que as estruturas não gostam muito que os seus membros sejam definidos com valores das tuas constantes. Tenta usar #define max 25 em vez de const int max = 25; e penso que deixa de dar esse erro, pelo menos no Dev-c++ http://sergiosantos.info http://ideias3.com http://takeoff.ideias3.com
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now