Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Miketo

Escrever string para ficheiro com tamanho fixo

Recommended Posts

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;
}

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.