Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Miketo

Escrever string para ficheiro com tamanho fixo

Mensagens Recomendadas

Miketo

Ok pessoal, eu tentei, tentei, tentei, mas não consegui.

O que eu quero fazer é, ao receber um float, a funcao pede o nome ao utilizador e imprime num ficheiro txt o nome com o numero a frente. Isto eu consigo fazer, mas precisava de garantir que o nome tinha tamanh fixo, para depois poder saber sempre onde esta o numero que corresponde ao jogador. Ou seja, quero que o ficheiro se pareca mais ou menos com isto:

Joca........ ---> 78.2

Joaquim... ---> 68.1

O código que fiz, faz o seguinte:

Joca ---> 78.2

Joaquim ---> 68.1

Alguém me diz como alterar o código para obter o que quero?

int escreve_record(float percentagem){
char* p;

if(percentagem==100){
	p = new char[6];

	p[0]= '1';
	p[1]= '0';
	p[2]= '0';
	p[3]= '.';
	p[4]= '0';

}else{
	p = new char[5];
	int a=percentagem/10;
	int b=(int)percentagem%10;
	int c=(int)((int)percentagem*10)%10;

	p[0]= char(a+48);
	p[1]= char(b+48);
	p[2]= '.';
	p[3]= char(c+48);
}

FILE* fich;
char nome[15];

fich = fopen ("records.txt" , "a");
if(!fich){
	cout << "Erro a abrir o ficheiro";
	return 0;
    }

cout << "Introduz o teu nome: ";
cin >> nome;

fputs (nome,fich);
fputs (" ---> ",fich);
fputs (p,fich);
fputs ("\n",fich);

fclose(fich);
return 0;
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
merlin3000

Podes tentar incializar os 15 campos do array com espaços, e depois de leres o nome trocar a posição do '\0' com a posição 14 do array (neste casos um expaço). Teoricamente ficas com um array com o nome e o resto em espaços.

senão cria uma função que imprime X espaços. É só imprimir ( TamanhoMáximo - TamanhoString ) espaços


Criar é Divertido

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.