Ir ao conteúdo
  • Cadastre-se

Abrir arquivo txt qualquer


Danielq.ds

Posts recomendados

Olá

Estou com um problema, que como o próprio título já diz é: eu tenho que abrir um arquivo no formato txt, porém não posso dar como pré difinido o nome do arquivo. O usuário deve digitar o nome do arquivo.

Achei muita coisa na net sobre abrir arquivos em txt, principalmente com o uso de fopen, porém sempre que vejo é se usando um nome de arquivo já pré-definido.

Se alguém puder me ajudar eu ficaria muito grato

Link para o comentário
Compartilhar em outros sites

Olha é só pedir que o usuário digite e salve em uma string depois é só passala como parametro de fopen


...
printf("Digite o nome, ou o caminho do arquivo");
gets(str);
...
fp = fopen(str, "w");

se caso o usuario só digtar o nome, você pode colocar o .txt usando strcat, precisará do arquivo de cabeçalho string.h

Link para o comentário
Compartilhar em outros sites

Eu tentei fazer isso que me passou, mas não sei o que está dando errado. Fiz um programinha para ler o arquivo e imprimir seu conteúdo porém não está dando certo



#include <stdio.h>
#include <conio.h>

void main()
{
FILE *fp;
int i;
char Linha[100];
char *result;
char Arquivo[100];

printf("Digite o nome, ou o caminho do arquivo: ");
gets(Arquivo);
fp = fopen("Arquivo", "rt");

if (fp == NULL) // Se houve erro na abertura
{
printf("Problemas na abertura do arquivo\n");
return;
}

i = 1;
while (!feof(fp))
{
// Lê uma linha (inclusive com o '\n')
result = fgets(Linha, 100, fp); // o 'fgets' lê até 99 caracteres ou até o '\n'
if (result) // Se foi possível ler
printf("Linha %d : %s",i,Linha);
i++;
}
fclose(fp);
}

Link para o comentário
Compartilhar em outros sites

Muito obrigado!!! Tirei o aspas do Arquivo e troquei o "rt" por "r" e deu certo

Obrigado aos dois por terem me respondido e me ajudado

agora eu to com um outro probleminha...

eu to pegando os dados do arquivo de texto, onde o primeiro termo é a quantidade de salas de uma escola e os números seguintes são os números de pessoas que cabem nessa sala.


int salas,quant_elem[100];
turmas=0;


fscanf(fp, "%d", &salas);
printf("\na quantidade de salas e : %d\n", turmas);


for(i=0; i<salas; i++){
result = fgets(Linha, 100, fp);
if(result)
fscanf(fp, "%d", &quant_elem[i]);
printf("\na quantidade de elementos e : %d\n", quant_elem);
}

não sei porque, mas o código me fornece um número de quant_elem muito estranho

eu gostaria de saber duas coisas...primeiro, como eu posso definir o vetor quant_elem como tendo o tamanho de salas e como eu faço pra fazer ele imprimri os valores corretos

Link para o comentário
Compartilhar em outros sites

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