Ir ao conteúdo
  • Cadastre-se

Daniel Oliveira

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Daniel Oliveira

  1. Estou tentando fazer uma calculadora gráfica com SFML.

    O problema está na função cin. Ela não está lendo as posições do vetor coef. Ele pede para ler mas depois o programa fecha sem retornar 0.

    O código abaixo:

    #include<SFML/Graphics.hpp>
    #include<iostream>
    #include<cmath>
    
    using namespace std;
    using namespace sf;
    
    int main(){
    	vector<RectangleShape> pixel;
    	vector<float> coef; // COEFICIENTES
    	int ncoef; // NUMERO DE COEFICIENTES
    	float x, y;
    	
    	cout << "Digite o numero de coeficientes: ";
    	cin >> ncoef;
    	for(int i=0; i<ncoef; i++){
    		cout << "Digite o coeficiente " << i+1 << ": ";
    		cin >> coef[i];
    		printf("Ok.\n");
    	}
    	RenderWindow window(VideoMode(201,201), "Calculadora Grafica");
    	for(x=-201; x<201; x++) for(int i=0; i<ncoef; i++){
    		y += (float)coef[ncoef]*pow(x,ncoef-i);
    		pixel[x].setPosition(Vector2f(x+101,y+101));
    	}
    	while(window.isOpen()){
    		Event e;
    		while(window.pollEvent(e))
    			if(e.type == Event::Closed)
    				window.close();
    	
    		for(int i=0; i<201; i++){
    			pixel[i].setFillColor(Color::Green);
    			pixel[i].setSize(Vector2f(1,1));
    		}
    		window.clear(Color::Black);
    		for(int i=0; i<201; i++) window.draw(pixel[i]);
    		window.display();
    	}
    	getch();
    	return 0;
    }

    imagem.png

  2. @devair1010 , muito obrigado pela ajuda e pela boa explicação! Mas o problema não foi solucionado. Aí eu vi que a variável "mensagem" não suportava a quantidade de texto pedido naquele while.

    // Na declaração
    char mensagem[100], email[10000], ContaAtual[100], // Veja que "mensagem" só suporta 100 caracteres
         texto[10000], email2[100], tempo[20],
         nome[50], sobrenome[50];
    
    while(fgets(mensagem,10000,CaixaEntrada)!=NULL){ // E aqui eu estava pedindo 10.000 caracteres
    		printf("-> %s\n",mensagem);
    }

     

    • Curtir 1
  3. Eu estou tentado fazer uma espécie de e-mail em C, mas estou com um pequeno problema: o fclose da linha 39 (que está depois do término de um for, no primeiro programa) não está funcionando. O programa compila normalmente mas, na hora da execução (desse comando), fica apenas carregando. Vou colocar os scripts abaixo para vocês entenderem.

    #include<stdio.h>
    #include<stdlib.h>
    #include<windows.h>
    #include<string.h>
    #include<locale.h>
    #include<time.h>
    
    int main(){
    	setlocale(LC_CTYPE,"Portuguese");
    	FILE *CaixaEntrada;
    	int a, i, op, hor;
    	char mensagem[100], email[10000], ContaAtual[100];
    	char texto[10000], email2[100], tempo[20];
    	char nome[50], sobrenome[50];
    	struct tm * tm;
    	time_t t;
    	CxEnt: CaixaEntrada = fopen("ContaAtual.txt","r");
    	if(feof(CaixaEntrada)) system("EntrarConta.exe");
    	fgets(ContaAtual,100,CaixaEntrada);
    	strcpy(email,ContaAtual);
    	strcat(email,"CaixaEntrada");
    	strcat(email,".txt");
    	fclose(CaixaEntrada);
    	CaixaEntrada = fopen(ContaAtual,"r");
    	fgets(nome,50,CaixaEntrada);
    	fgets(sobrenome,50,CaixaEntrada);
    	nome[strlen(nome)-1] = '\0';
    	sobrenome[strlen(sobrenome)-1] = '\0';
    	fclose(CaixaEntrada);
    	system("cls");
    	printf("CAIXA DE ENTRADA de %s %s\n\n",nome,sobrenome);
    	CaixaEntrada = fopen(email,"r");
    	printf("Mensagens novas:\n\n");
    	for(;;){
    		fgets(mensagem,1000,CaixaEntrada);
    		if(strcmp(mensagem,"\n")!=0) printf("-> %s\n",mensagem);
    		else break;
    	}
    	fclose(CaixaEntrada);
    	CaixaEntrada = fopen(email,"w");
    	fclose(CaixaEntrada);
    	printf("\n(1) Sair da Conta\n");
    	printf("(2) Escrever\n");
    	printf("(3) Sair\n");
    	op = getchar();
    	op-=48;
    	if(op==1){
    		fclose(CaixaEntrada);
    		CaixaEntrada = fopen("ContaAtual.txt","w");
    		fclose(CaixaEntrada);
    		system("cls");
    		printf("Saindo...");
    		Sleep(500);
    		system("EntrarConta.exe");
    	}
    	if(op==2){
    		fclose(CaixaEntrada);
    		system("cls");
    		printf("\t\tESCREVER\n\n");
    		printf("Digite o endereço de e-mail do destinatário (sem @nimail.com): ");
    		scanf("%s",email2);
    		printf("Digite o e-mail (não dê ENTER até acabar): ");
    		fflush(stdin);
    		gets(texto);
    		strcpy(email,email2);
    		strcat(email,"CaixaEntrada");
    		strcat(email,".txt");
    		CaixaEntrada = fopen(email,"a");
    		time(&t);
    		tm = localtime(&t);
    		sprintf(tempo,"%s",asctime(tm));
    		tempo[strlen(tempo)-1] = '\0';
    		printf("(%s)\n",tempo);
    		fprintf(CaixaEntrada,"%s | ",tempo);
    		fprintf(CaixaEntrada,"%s | De %[email protected]\n\n",texto,ContaAtual);
    		fclose(CaixaEntrada);
    		printf("Texto enviado con sucesso!\n");
    		j: printf("(1) Voltar para a caixa de entrada\n");
    		printf("(2) Sair da conta\n");
    		op = getch();
    		printf("%c\n",op);
    		if(op=='1') goto CxEnt;
    		else if(op=='2'){
    			CaixaEntrada = fopen("ContaAtual.txt","w");
    			fclose(CaixaEntrada);
    			system("cls");
    			printf("Saindo...");
    			Sleep(500);
    			system("start EntrarConta.exe");
    		}
    		else{
    			printf("Opção inválida!! Digite 1 ou 2.\n");
    			goto j;
    		}
    	}
    	if(op==3){
    		getch();
    		exit(2);
    	}
    }


      

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<locale.h>
    
    int main(){
    	FILE *nconta;
    	FILE *GeraConta;
    	FILE *email;
    	setlocale(LC_CTYPE,"Portuguese");
    	struct nascimento{
    		int dia;
    		int mes;
    		int ano;
    	};
    	char email2[100];
    	struct conta{
    		char nome[50];
    		char sobrenome[50];
    		char endereco[20];
    		char senha[30];
    		int idade;
    		struct nascimento data;
    		char sexo;
    	}contas;
    	
    	int numconta, a, i, anoi;
    	char data[10], anoc[5];
    	
    	printf("CRIAR CONTA NO NIMAIL\n\n");
    	printf("Seu primeiro nome: ");
    	scanf("%s",&contas.nome);
    	printf("\nSeu sobrenome: ");
    	scanf("%s",&contas.sobrenome);
    	printf("\nDigite um endereço de email: ");
    	GeraEndereco: scanf("%s",&contas.endereco);
    	GeraConta = fopen(contas.endereco,"r");
    	if(GeraConta != NULL){
    		fclose(GeraConta);
    		printf("Esse endereço já foi usado. Tente outro!");
    		goto GeraEndereco;
    	}
    	fclose(GeraConta);
    	GeraConta = fopen(contas.endereco,"a");
    	printf("\nDigite o dia de seu nascimento: ");
    	scanf("%d",&contas.data.dia);
    	printf("Digite o mês de seu nascimento: ");
    	scanf("%d",&contas.data.mes);
    	printf("Digite o ano de seu nascimento: ");
    	scanf("%d",&contas.data.ano);
    	_strdate(data);
    	a=0;
    	for(i=6; i<strlen(data); i++){
    		anoc[a] = data[i];
    		a++;
    	}
    	anoi = atoi(anoc)+2000;
    	contas.idade = anoi - contas.data.ano;
    	printf("\nQual é seu sexo ('M' para masculino, 'F' para feminino): ");
    	contas.sexo = getch();
    	printf("%c\n",contas.sexo);
    	printf("\nDigite sua senha: ");
    	scanf("%s",&contas.senha);
    	fprintf(GeraConta,"%s\n%s\n",contas.nome,contas.sobrenome);
    	fprintf(GeraConta,"%d/%d/%d\n",contas.data.dia,contas.data.mes,contas.data.ano);
    	fprintf(GeraConta,"%c\n",contas.sexo);
    	fprintf(GeraConta,"%s\n",contas.senha);
    	fclose(GeraConta);
    	system("pause");
    	system("cls");
    	printf("Cadastramento feito com sucesso.\n");
    	printf("Você já pode sair! Pressione qualquer tecla para sair...\n");
    	getch();
    	strcpy(email2,contas.endereco);
    	strcat(email2,"CaixaEntrada");
    	strcat(email2,".txt");
    	email = fopen(email2,"a");
    	fclose(email);
    }
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<locale.h>
    #include<windows.h>
    
    void erro(){
    	printf("Erro! Email ou senha inválidos!\n");
    	getch();
    }
    
    int main(){
    	setlocale(LC_CTYPE,"Portuguese");
    	FILE *EntraConta;
    	int a, i, op;
    	char email[50], senha[20], senha1[20];
    	char nome[50], sobrenome[50], h=0;
    	//REDIRECIONA PARA CAIXA DE ENTRADA SE JÁ TIVER NUMA CONTA...
    	EntraConta = fopen("ContaAtual.txt","r");
    	if(EOF) goto escolha;
    	
    	fscanf(EntraConta,"%s",&email);
    	fclose(EntraConta);
    	EntraConta = fopen(email,"r");
    	fgets(nome,50,EntraConta);
    	fgets(sobrenome,50,EntraConta);
    	nome[strlen(nome)-1] = '\0';
    	sobrenome[strlen(sobrenome)-1] = '\0';
    	printf("Redirecionado para caixa de entrada de %s %s...",nome,sobrenome);
    	fclose(EntraConta);
    	Sleep(1000);
    	system("cls");
    	system("Email.exe");
    	
    	//-----------------------------------------------------------------
    	//ENTRAR NUMA CONTA OU CRIAR CONTA
    	escolha:
    		system("cls");
    		printf("Escolha uma opção:\n");
    		printf("(1) Entrar na minha conta\n");
    		printf("(2) Criar uma conta\n");
    		fflush(stdin);
    		op=getchar();
    		op-=48;
    		//ENTRAR NA CONTA
    		if(op==1){
    			entrar: system("cls");
    			printf("Digite 1 para voltar.\n");
    			printf("Digite seu endereço de email (sem @nimail.com): ");
    			scanf("%s",&email);
    			if(atoi(email)==1) goto escolha;
    			EntraConta = fopen(email,"r");
    			printf("Senha: ");
    			scanf("%s",&senha);
    			if(EntraConta == NULL){
    				erro();
    				goto entrar;
    			}
    			while(fgets(senha1,20,EntraConta) != NULL);
    			senha1[strlen(senha1)-1]='\0';
    			if(strcmp(senha,senha1)==0){
    				EntraConta = fopen("ContaAtual.txt","w");
    				fprintf(EntraConta,"%s",email);
    				fclose(EntraConta);
    				EntraConta = fopen(email,"r");
    				fgets(nome,50,EntraConta);
    				fgets(sobrenome,50,EntraConta);
    				nome[strlen(nome)-1] = '\0';
    				sobrenome[strlen(sobrenome)-1] = '\0';
    				printf("Redirecionado para caixa de entrada de %s %s...",nome,sobrenome);
    				fclose(EntraConta);
    				Sleep(1000);
    				system("cls");
    				system("Email.exe");
    			}
    			else{
    				erro();
    				goto entrar;
    			}
    		}
    		//-----------------------------------------------------------------
    		//CRIAR CONTA
    		else if(op==2){
    			system("cls");
    			system("CadastramentoNiMail.exe");
    			goto escolha;
    		}
    		//-----------------------------------------------------------------
    		//OPÇÃO INVÁLIDA
    		else{
    			printf("Opção inválida!!\n");
    			getch();
    			goto escolha;
    		}
    		//-----------------------------------------------------------------
    }

     

    • Amei 1

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!