• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vbmaster

error: 'xxxx" not declared in the scope

2 mensagens neste tópico

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;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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++

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora