Ir ao conteúdo

as stirngs num ficheiro binario nao ficam com caracteres diferentes?


Cambalinho

Posts recomendados

Postado

#include <stdio.h>
#include <string.h>

int main()
{
FILE *fp;
char FileName[255];
char Name[255], Name2[255];

printf("insert a file name\n");
gets(FileName);

fp=fopen(FileName,"w+rb");

printf("insert a name\n");
gets(Name);


fwrite(Name,1,strlen(Name),fp); //inserir o name no ficheiro

fseek(fp,0,SEEK_SET); //meter na posiçao inicial

fread(Name2,1,strlen(Name),fp); //ler o nome e mete-lo no nome2 e mostra-lo no ecra
Name2[strlen(Name)]='\0';
printf("%s", Name2);
fclose(fp);
return 0;
}

eu ao abrir o ficheiro com programas de texto, o texto que tem é 1 texto normal. mas se estou a trabalhar com ficheiros binarios, porque os caracteres naos sao diferentes?

Postado

A diferença entre a escrita normal e a binária é que esta constrói um arquivo contendo os valores de uma variável array, enquanto aquela gera um arquivo contendo caracteres de uma string F5Rua4D.gif.

No seu caso, o resultado da escrita binária foi como o da normal pelo fato de a variável array a ser escrita armazenar uma string.

Espero ter ajudado GbhmuXl.gif.

Postado
A diferença entre a escrita normal e a binária é que esta constrói um arquivo contendo os valores de uma variável array, enquanto aquela gera um arquivo contendo caracteres de uma string F5Rua4D.gif.

No seu caso, o resultado da escrita binária foi como o da normal pelo fato de a variável array a ser escrita armazenar uma string.

Espero ter ajudado GbhmuXl.gif.

desculpa mas como posso enviar aquela string para o ficheiro e mete-la no ecra e o processador de texto ver outra coisa?

parece que tenho de codificar o codigo, certo?

#include <stdio.h>
#include <string.h>

char *Coded(char String[])
{
int i=0;
char a;
for (i=0; String[i]!='\0'; i++)
{
a=String[i];
a=a-100;
String[i]=a;
}
return String;
}

char *Decoded(char String[])
{
int i=0;
char a;
for (i=0; String[i]!='\0'; i++)
{
a=String[i];
a=a+100;
String[i]=a;
}
return String;
}


int main()
{
FILE *fp;
char FileName[255];
char Name[255], Name2[255];
char *test;
printf("insert a file name\n");
gets(FileName);

fp=fopen(FileName,"w+rb");

printf("insert a name\n");
gets(Name);

test=Coded(Name);
//printf("%s",test);
fwrite(test,1,strlen(Name),fp); //inserir o name no ficheiro

fseek(fp,0,SEEK_SET); //meter na posiçao inicial

fread(Name2,1,strlen(Name),fp); //ler o nome e mete-lo no nome2 e mostra-lo no ecra
Name2[strlen(Name)]='\0';
test=Decoded(Name2);
printf("%s", test);
fclose(fp);
return 0;
}

eu fiz o teste e no Bloco de Notas aparecia 1 texto diferente;)

se eu estiver errado, avisa;)

Arquivado

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

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