Redirecionar saidas com printf e scanf

1. Redirecionar saidas com printf e scanf

Ronaldo Caldas da Silva
goss

(usa Slackware)

Enviado em 13/06/2007 - 15:48h

Como eu faço para que todo printf e scanf do meu programa seja direcionado para um arquivo de texto como por exemplo:
printf("Digite o inicio e o fim :\n");
scanf("%d %d", &inicio, &fim);
for (i=1;i<100;i++){
teste=intervalo(inicio,fim);
printf("teste=%d\n",teste);
}/*


saida:
Digite o inicio e o fim :
15 59

teste=55
teste=42
teste=40
teste=18
teste=16
teste=41
teste=54
.....


  


2. saidas com printf e scanf

Adilton Jose da Silva
adiltonsilva

(usa Debian)

Enviado em 17/06/2007 - 21:27h

Caso tenha entendido bem a pergunta você deve em primeiro lugar declarar uma variável ponteiro do tipo FILE

FILE *arq;

depois abrir o arquivo

arq = fopen("nome_arq","w");

e utilize fprintf e fscanf

Lembre-se sempre de fechar o arquivo

fclose(arq);


3. Programação C

Ed Pess
edpes

(usa Ubuntu)

Enviado em 06/09/2015 - 19:37h


Exemplo de código - Como usar a fscanf
Criado um arquivo de texto chamado "notas.txt" no diretório corrente com o seguinte conteúdo:
Alberto matemática 8
Gustavo Português 10
Renato Algebra 9
Roberto História 8

Basta notar que o formato desse arquivo é: string, espaço, string, espaço, int e enter
Ou seja: "%s %s %d\n"
O formato se repete lina por linha, onde temos que receber 2 strings e um número por linha.
Então vamos salva-los em três variáveis e exibi-las.



#include <stdio.h>
//Author Edson Pessotti //

int main(void)
{
char url[]="notas.txt",
nome[15], materia[10];
float nota;
FILE *arq;

arq = fopen(url, "r");
if(arq == NULL)
printf("Erro, nao foi possivel abrir o arquivo\n");
else
while( (fscanf(arq,"%s %s %f n", nome, materia, &nota))!=EOF )
printf("%s teve media %.2f na materia %s\n", nome, nota,materia);

fclose(arq);

return 0;
}



Resultado:

Alberto teve media 8.00 na materia matemática
Gustavo teve media 10.00 na materia Português
Renato teve media 9.00 na materia Algebra
Roberto teve media 8.00 na materia História


------------------
(program exited with code: 0)
Press return to continue





4. Re: Redirecionar saidas com printf e scanf

Paulo
paulo1205

(usa Ubuntu)

Enviado em 06/09/2015 - 21:44h

O jeito mais fácil, sem mexer no programa original, é redirecionar por fora do seu programa. Na hora de chamar o executável, você faz o redirecionamento pelo shell. O seguinte modelo funciona no mundo Unix e no mundo Windows.

nome_do_executavel < arquivo_de_entrada > arquivo_de_saida 


Modificando o programa, você pode usar a solução óbvia, que é escrever tudo direcionando para arquivos específicos, com fopen(), fscanf(), fprintf() e fclose().

Existe também como fazer o redirecionamento dentro do seu programa. Às vezes isso pode ser necessário se você precisar criar comunicação entre processos, mas pode ser usado também para gerar arquivos. No geral, isso pode ser feito com freopen(). No caso do mundo Unix, isso pode também ser feito com dup2().






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts