Erro na passagem de valores

1. Erro na passagem de valores

Bomfim
pinta901029

(usa Outra)

Enviado em 10/12/2013 - 19:35h

Boa noite, gostaria de entender como faz a passagem de valor corretamente com ponteiros.

#include "iostream"
#include "cstdlib"
#include "cstring"

using namespace std;

int menu();
int header();


int main(int argc, char const *argv[])
{
header();

menu();

return 0;
}

int header()
{
system("clear");

char nome[71],curso[51];

cout << "Digite seu nome e seu curso:" << endl;

cout << "Nome: ";
cin.getline(nome, 70, '\n');
cout << "Curso: ";
cin.getline(curso, 50, '\n');

menu(&nome, &curso);
}

int menu(char *nome[], char *curso[])
{
int op;

cout << "\n\nOlá, ";
for (int i = 0; i <= strlen(*nome); i++)
{
cout << *nome[i];
}

cout << " voce esta estudando ";

for (int i = 0; i <= strlen(*curso); i++)
{
cout << *curso[i];
}

}


Na hora de compilar dá o seguinte erro: test.cpp:33:19: error: too many arguments to function ‘int menu()’
test.cpp:7:5: note: declared here

Mas eu não estou passando 2 valores e recebendo 2?






  


2. Re: Erro na passagem de valores

Daniel
code0

(usa Slackware)

Enviado em 11/12/2013 - 10:14h



Você declarou a função menu sem argumentos e implementou ela com 2 argumentos :

int menu();

int menu(char *nome[], char *curso[])
{
...

}




3. Re: Erro na passagem de valores

Clodoaldo Peres
clodoaldoPeres

(usa Ubuntu)

Enviado em 11/12/2013 - 14:41h

Seu prototipo da funcao menu estava incorreto com os argumentos, vc nao estava incrementando a variavel 'i' no loop

#include <iostream>

using namespace std;

int menu(char *,char *);
int header();


int main(int argc, char const *argv[])
{
header();


return 0;
}

int header()
{
//system("clear");

char nome[71],curso[51];

cout << "Digite seu nome e seu curso:" << endl;

cout << "Nome: ";
cin.getline(nome, 70, '\n');
cout << "Curso: ";
cin.getline(curso, 50, '\n');

menu(nome, curso);
}

int menu(char nome[], char curso[])
{
int op;

cout << "\n\nola, ";
/*
for (int i = 0; i <= strlen(nome); i++)
{
cout << nome[i]; //FALTOU COLOCAR O 'I' AQUI PRA INCREMENTAR AS LETRAS
}*/
cout<<nome<<endl;
cout << " voce esta estudando ";
/*
for (int i = 0; i <= strlen(curso); i++)
{
cout << curso[i];//FALTOU COLOCAR O 'I' AQUI PRA INCREMENTAR AS LETRAS
}*/
cout<<curso<<endl;
system("pause");
}






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts