zmangabeira Postado Dezembro 4, 2007 Denunciar Share Postado Dezembro 4, 2007 Pessoal, alguém pode me ajudar ae. Esse programa aqui quando eu testo aqui, dá um erro e não grava o resultado no txt de saídaagradeçoEscreva um programa que retorne os primeiros n caracteres à esquerdado arquivo lido.O resultado deverá ser retornado em um arquivo desaída.ex: teste de programa em c (Fazer um programa pra ler só até a palavra teste, por exemplo)#include <stdio.h>main() { FILE *ARQ; FILE *ARQ1; char carac; char entrada[50], saida[50]; int cont_carac = 0, quant; printf("Digite o nome do primeiro arquivo: "); scanf("%s", &entrada); printf("Digite o nome do segundo arquivo: "); scanf("%s", &saida); ARQ = fopen("entrada", "r"); ARQ1 = fopen("saida", "a"); printf("digite a quantidade de caracteres a ser lido: "); scanf("%d", &quant); while(cont_carac <= quant){ carac = getc(ARQ); fprintf(ARQ1, "%c", carac); cont_carac++; } printf("\n\n"); system("pause"); fclose(ARQ); fclose(ARQ1);} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 samyr Postado Dezembro 10, 2007 Denunciar Share Postado Dezembro 10, 2007 Primeiro, seria interessante se você testasse antes se o arquivo foi aberto corretamenteassim:if((ARQ = fopen("entrada.txt","r"))==NULL){ printf("ERRO ao abrir arquivo!\n"); exit(1);}Segundo, ele não tá gravando porque: 1º - "entrada" não é um nome de arquivo, o correto seria "nome_do_arquivo.extenção" ("entrada.txt" por exemplo); 2º - "entrada" também não é uma variavel, veja, seria uma variavel se retirasse as aspas. ai você entraria com o nome do arquivo que quizer mais a extenção, ai daria tudo certo. 3º - testando aqui, ele está retornando os n caracteres +1, resolve colocando apenas "quant--;" abaixo de "scanf("%d", &quant);"oK, espero ter ajudado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
zmangabeira
Pessoal, alguém pode me ajudar ae. Esse programa aqui quando eu testo aqui, dá um erro e não grava o resultado no txt de saída
agradeço
Escreva um programa que retorne os primeiros n caracteres à esquerda
do arquivo lido.O resultado deverá ser retornado em um arquivo de
saída.
ex: teste de programa em c (Fazer um programa pra ler só até a palavra teste, por exemplo)
#include <stdio.h>
main() {
FILE *ARQ;
FILE *ARQ1;
char carac;
char entrada[50], saida[50];
int cont_carac = 0, quant;
printf("Digite o nome do primeiro arquivo: ");
scanf("%s", &entrada);
printf("Digite o nome do segundo arquivo: ");
scanf("%s", &saida);
ARQ = fopen("entrada", "r");
ARQ1 = fopen("saida", "a");
printf("digite a quantidade de caracteres a ser lido: ");
scanf("%d", &quant);
while(cont_carac <= quant){
carac = getc(ARQ);
fprintf(ARQ1, "%c", carac);
cont_carac++;
}
printf("\n\n");
system("pause");
fclose(ARQ);
fclose(ARQ1);
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.