Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Danielq.ds

Abrir arquivo txt qualquer

Recommended Posts

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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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);
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Editado por Danielq.ds

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×