Ir ao conteúdo

Posts recomendados

Postado

Quando tento compilar o código abaixo, ela mostra o seguinte erro:

Conversion from 'Data(Data)' to non-scalar type 'Data' requested

Esse erro ocorre na linha 34 (date=leData;)

Alguém pode me ajudar a resolver isso urgentemente?!

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include<locale.h>
using namespace std;
typedef struct
{
	int dia,mes,ano;
}Data;
Data leData(Data)
{
	Data date;
	printf("Digite o dia: ");
	scanf("%i",&date.dia);
	printf("Digite o mês: ");
	scanf("%i",&date.mes);
	printf("Digite o ano: ");
	scanf("%i",&date.ano);
	return date;
}
void imprimeData(Data)
{
	Data Data;
		cout<<Data.dia;
		cout<<"/";
		cout<<Data.mes;
		cout<<"/";
		cout<<Data.ano;
		cout<<"/";
}
int main(int argc, char** argv) {
	setlocale(LC_ALL, "Portuguese");
	Data date;
	date=leData;
	imprimeData;
	system("pause");
	return 0;
}

 

  • Curtir 1
Postado

Acho que as funções não devem ter argumentos e a chamada de função deve ter os parênteses:

Data leData(){
	...
}

void imprimeData(){
	...
}

int main(int argc, char** argv) {
	setlocale(LC_ALL, "Portuguese");
	Data date;
	date=leData; //substituir por date=leData();
	imprimeData; //substituir por date=imprimeData();
	system("pause");
	return 0;
}

 

  • Curtir 1
Postado

Em C fica assim:

#include <stdio.h>

typedef struct{
	int dia,mes,ano;
}Data;
Data leData(){
	Data date;
	printf("Digite o dia: ");
	scanf("%d",&date.dia);
	printf("Digite o mês: ");
	scanf("%d",&date.mes);
	printf("Digite o ano: ");
	scanf("%d",&date.ano);
	return date;
}
void imprimeData(){
	Data date;
		printf("%d/%d/%d",date.dia,date.mes, date.ano);
}
int main(){
	Data date;
	date=leData();
	imprimeData();
	return 0;
}

 

Postado

Aqui funcionou perfeitamente em C++ assim:

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include<locale.h>
using namespace std;
typedef struct
{
	int dia,mes,ano;
}Data;
Data leData()
{
	Data date;
	printf("Digite o dia: ");
	scanf("%i",&date.dia);
	printf("Digite o mês: ");
	scanf("%i",&date.mes);
	printf("Digite o ano: ");
	scanf("%i",&date.ano);
	return date;
}
void imprimeData()
{
	Data Data;
		cout<<Data.dia;
		cout<<"/";
		cout<<Data.mes;
		cout<<"/";
		cout<<Data.ano;
		cout<<"/";
}
int main(int argc, char** argv) {
	setlocale(LC_ALL, "Portuguese");
	Data date;
	date=leData();
	imprimeData();
	system("pause");
	return 0;
}

 

adicionado 0 minutos depois
2 minutos atrás, The_Ruivo disse:

@Luís Roberto C. da Silva Não funcionou 😕

Quando eu executei ele mostrou números aleatórios na tela ;-;

Colocou os parênteses mas chamadas de função?

Postado

@Luís Roberto C. da Silva Sim

 

adicionado 0 minutos depois
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include<locale.h>
using namespace std;
typedef struct
{
	int dia,mes,ano;
}Data;
Data leData()
{
	Data date;
	printf("Digite o dia: ");
	scanf("%i",&date.dia);
	printf("Digite o mês: ");
	scanf("%i",&date.mes);
	printf("Digite o ano: ");
	scanf("%i",&date.ano);
	return date;
}
void imprimeData()
{
	Data Data;
		cout<<Data.dia;
		cout<<"/";
		cout<<Data.mes;
		cout<<"/";
		cout<<Data.ano;
		cout<<"/";
}
int main(int argc, char** argv) {
	setlocale(LC_ALL, "Portuguese");
	Data date;
	date=leData();
	imprimeData();
	system("pause");
	return 0;
}

Ele está assim

 

adicionado 1 minuto depois

image.thumb.png.2616b1230569892c12d823cf423ee412.png

Postado

@The_Ruivo Assim também funciona:

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
using namespace std;

typedef struct
{
    int dia,mes,ano;
} Data;

Data leData()
{
    Data date;
    printf("Digite o dia: ");
    scanf("%i",&date.dia);
    printf("Digite o mês: ");
    scanf("%i",&date.mes);
    printf("Digite o ano: ");
    scanf("%i",&date.ano);
    return date;
}
void imprimeData(Data d)
{
    cout<<d.dia;
    cout<<"/";
    cout<<d.mes;
    cout<<"/";
    cout<<d.ano;
    cout<<"/";
}
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Portuguese");
    Data date;
    date = leData();
    imprimeData(date);
    system("pause");
    return 0;
}

 

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!