
dsales
(usa Debian)
Enviado em 11/03/2006 - 15:53h
Boa tarde pessoal,
Estou enfrentando um problema bobo, mas que está me deixando de cabeça quente!
É o seguinte, estou fazendo um programa em C que deve ler um arquivo texto contendo hostnames os quais devo verificar se estão ou não ativos.
Vou exemplificar aqui apenas a parte em que identifico o erro. Primeiramente vou dar um exemplo do arquivo texto contendo os hostnames e depois o codigo que deveria fazer a leitura correta deste arquivo.
arquivo texto:
BHZRPCTTOI00062
BHZRPCTTOI00079
BHZRPCTTOI00069
codigo:
FILE *arquivo;
char linha[15];
int retorno;
arquivo = fopen("arquivo.txt", "rb");
if (arquivo)
{
while(1)
{
retorno=fread(linha, sizeof(linha), 1, arquivo);
if (retorno != 1)
break;
else
printf("%s",linha);
}
}
fclose(arquivo);
/*--fim--*/
Observei que a ultima linha impressa sempre sai faltando caracteres e o número de caractres que faltam equivalem ao número de linhas do arquivo - 1, por exemplo, o arquivo texto que coloquei acima contem três linhas quando executo o programa ele imprime da seguinte forma:
BHZRPCTTOI00062
BHZRPCTTOI00079
BHZRPCTTOI000
Quando removo a terceira linha do arquivo ele impreme assim:
BHZRPCTTOI00062
BHZRPCTTOI0007
Aguardo retorno e um forte abraço,
dsales