Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kaleu50

Comparação string não funciona

Recommended Posts

void separa(FILE *arquivo, FILE *f1, FILE *f2){
	CADA cad;
	char ch;
	int ac;
	

	if ((arquivo = fopen("cadastro.dat","r")) == NULL){
		printf("\n ERRO!!!!");
		exit(1);
	}
	if ((f1 = fopen("homens.dat","w")) == NULL){
		printf("\n ERRO!!!!");
		exit(1);
	}
	if ((f2 = fopen("mulheres.dat","w")) == NULL){
		printf("\n ERRO!!!!");
		exit(1);
	}
	
	//gets(sexo);
	while(fread(&cad, sizeof(CADA), 1, arquivo)== 1 && !ac){
		ch = getc(arquivo);
		if(strcmp(cad.sexo, "f")==0){
			putc(ch, f1);
			printf("\nCopiado com sucesso!! IF"); 
			
			ac=1;
		}
		
	}
	
	fclose(arquivo);
	fclose(f1);
	fclose(f2);
	printf("\nCopiado com sucesso!!");
}

o tentando fazer essa função pra comprar o valor de um arquivo e caso o sexo sexa masculino salvar no arquivo masculino caso seja feminino no arquivo feminino mas nao consigo fazer a comparação

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função é case sensitive. "f" != "F".

Fread lê bytes puros. Use fscanf ou fgets se vc quiser entrada formatada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função é case sensitive. "f" != "F".

Fread lê bytes puros. Use fscanf ou fgets se você quiser entrada formatada.

que é case sensitive eu sei que tava colocando f mas mesmo assim nao acha tentei varias formas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o arquivo?

esse é todo o codigo do arquivo

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>

struct CADA{
	char nome[40], sexo[1], corolhos[10], data[10];
	float altura, peso;
	
}cad;

void cadastra(FILE *arquivo){
	CADA cad;
	char numstr[61],resp;
	if ((arquivo = fopen("cadastro.dat","wb")) == NULL){
		printf("\n Erro na abertura!!");
		exit(1);
		
	}
	do{
		printf("\n Nome: ");
		gets(cad.nome);
		printf("\n Sexo: (m/f)");
		gets(cad.sexo);
		printf("\n Cor Olhos: ");
		gets(cad.corolhos);
		printf("\n Data: ");
		gets(cad.data);
		printf("\n Altura: ");
		gets(numstr);
		cad.altura = atof(numstr);
		printf("\n Peso: ");
		gets(numstr);
		cad.peso = atof(numstr);
		fwrite(&cad, sizeof(CADA), 1, arquivo);
		printf("\n Deseja cadastrar mais?");
				do {
			resp = toupper(getch());
		} while (resp != 'S' && resp != 'N');
	
	}while(resp=='S');
	fclose(arquivo);


}

void separa(FILE *arquivo, FILE *f1, FILE *f2){
	CADA cad;
	char ch;
	int ac,aux;
	

	if ((arquivo = fopen("cadastro.dat","r")) == NULL){
		printf("\n ERRO!!!!");
		exit(1);
	}
	if ((f1 = fopen("homens.dat","w")) == NULL){
		printf("\n ERRO!!!!");
		exit(1);
	}
	if ((f2 = fopen("mulheres.dat","w")) == NULL){
		printf("\n ERRO!!!!");
		exit(1);
	}
	
	aux = strcmp(cad.sexo, "f");
	while(fread(&cad, sizeof(CADA), 1, arquivo)== 1 && !ac){
		ch = getc(arquivo);
		if(aux ==0 ){
			putc(ch, f1);
			printf("\nCopiado com sucesso!! IF"); 
			
			ac=1;
		}
		
	}
	
	fclose(arquivo);
	fclose(f1);
	fclose(f2);
	printf("\nCopiado com sucesso!!");
}
	

int main (){
	FILE *arquivo;
	FILE *f1;
	FILE *f2;
	cadastra(arquivo);
	separa(arquivo,f1,f2);
	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tem dentro dele. Qual é o formato da coisa.

g ^     €‚A           œ(@             ff        f    A'@           €?

salva isso dentro dele eu salvei coisas aleatorias para teste

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.