Jump to content
Joaopedro23434we

Retornar conexão com o arquivo

Recommended Posts

É o seguinte, estou criando um programa em C para um trabalho da Faculdade. O programa é para criar uma agenda telefônica e tem algumas opções como incluir uma pessoa, exlcuir pessoa, listar pessoas, pesquisar pessoas e sair, isso tudo em um arquivo. Eu preciso de uma função que conecte com o arquivo e retorne o ponteiro da conexão, exemplo(Errado, pois não funciona);

 

void* conectarArquivo(){
	FILE *arquivo;
	arquivo = fopen("C:/TESTES/TESTE.txt", "r");
	
	return arquivo;
}

int main(){
	char c;
    do{
    	c = getc(conectarArquivo());
    	printf("%c", c);
	}while(c!=EOF);
}

É possível fazer isso? como eu faria, me ajudem.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By silver sanths
      Como faço para retornar as notas da função cadastrar,  para a calcular a media dentro da função listar_notas?
       
       
      import subprocess
      def cadastrar():
          nota1 = float(input("Nota I: "))
          nota2 = float(input("Nota II: "))
          nota3 = float(input("Nota III: "))
          nota4 = float(input("Nota IV: "))
          arquivo = open('teste.txt', 'a')
          arquivo.write('{},{},{},{}\n'.format(nota1, nota2, nota3, nota4))
          arquivo.close()
          
          subprocess.run(["notepad" , "teste.txt"])
          
      def listar_notas():
          
          arquivo = open('teste.txt', 'r')
          linhas = arquivo.readlines()
          arquivo.close()
          print("{:20}{:20}{:20}{:20}".format("Nota I", "Nota II", "Nota III", "Nota IV"))
          
          for linha in linhas:
              nota1, nota2, nota3, nota4 = linha.strip().split(",")
              print("{:20}{:20}{:20}{:20}".format(nota1, nota2, nota3, nota4))
              
      while True:
          print('\n1. Cadastrar Notas')
          print('2. Listar Notas')
          print('3. Média')
          print('4. Sair')
          opcao = int(input())
          if opcao == 1:
              cadastrar()
          if opcao == 2:
              listar_notas()
          if opcao == 3:    
              break
       
    • By Claudia França
      Prezados tenho um sisteminha que vai funcionar em 3 moedas real, euro e dolar.
      Preciso de uma ajuda para atualizar o codigo abaixo para automatizar isso nos relatorios.   
       
      <h1>Digite um valor </h1>
                  <select name="currency" required>
                      <option value="BRL" id="real" />Real R$=</option>
                      <option value="USD" id="dolar" selected/>Dolar $=</option>
                      <option value="EUR" id="euro" />Euro E=</option>
                  </select>
                  <input type="text" name="amount" size="15" value="20.00" onKeyUp="dinheiro(this,15)"/>
                  </br>
       
       
      abaixo a conversão que  consegui fazer, mas não sei se tem algo melhor. 
       
       
       
      function getCurrencyRating($currencyCode){
          if($currencyCode == 'BRL') return 1;
          $currcode = $currencyCode.'_BRL';
          $apiURL = "http://free.currencyconverterapi.com/api/v5/convert?q=";
          $apiURL .= $currcode.'&compact=y&&apiKey=2e5b8ec911e1ff89c8c4';
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $apiURL);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
          $output = curl_exec($ch);
          curl_close($ch);
          $currencyObj = json_decode($output);
          $ratingCurrency = $currencyObj->$currcode->val;
          $ratingCurrency = round( $ratingCurrency, 2);
          return $ratingCurrency;
      }
    • By vinihhylian0103
      É possível anexar um arquivo e enviá-lo por email via PHP? Se sim, alguém poderia me dar uma ajuda com isso por favor, é realmente muito importante para meu projeto do TCC.
    • By Keven Augusto
      Primeiramente, bom dia/boa tarde/boa noite.
       
      Eu estou migrando de vez para o Linux e percebi que não possui nenhuma aplicação nativa de cronometro como a que estava acostumado a utilizar no Windows 10. Eu faço home office, então uso muito para gerir o tempo de trabalho diário e gostaria de utilizar no Ubuntu também. 
       
      Procurei na loja do sistema, mas não encontrei nenhum que me agradasse e, como estudante de Engenharia de Computação, pensei em fazer um simples que execute no terminal mesmo e possua as funções básicas que preciso: start, pause e reset.
       
      Porém, estava pensando e não aprendi ainda e não tenho a menor ideia de como faria para que fosse exibido no terminal o contador e ao mesmo tempo examinar o teclado para que pause a execução caso seja pressionada uma determinada tecla.
       
      Alguém teria alguma ideia de como possa fazer para isso?
       
      Eu pensei em iniciar um novo terminal via código mesmo e ir mostrando o contador neste outro terminal, aí no primeiro eu insiro os comandos para pausar, começar ou reiniciar o tempo. Penso que seja mais ou menos isso que preciso fazer, mas não tenho certeza e gostaria de uma luz.
    • By Lísias de Castro
      Ola, sou Lísias e gostaria de saber se alguém poderia me ajudar nessa tarefa tão difícil para finalizar minha biblioteca.
      Eu fiz um motor de jogos, e nele já consegui implementar todas as funções básicas para um uso primário. Fazendo a criação de jogos simples através dela.
      Mas estou desenvolvendo um rpg, e resolvi fazer com que os personagens atirem a longa distância. Porém, para que isso aconteça, tenho que fazer com que o objeto a ser atirado sempre corra em linha reta.
      Criei uma função que faz com que todos os objetos se movam na tela, mas ela não funciona de uma maneira linear. O que posso modificar nessa função para que ela me proporcione isso?
       
      static STATUS place_user_move(OBJECT_SET * U, BP32 x, BP32 y) { if (U == NULL)return (Off); if (U->x_route == x) { if (U->y_route > y) { U->y_route -= U->y_speed; U->where_stop_but(U, NORTH); if (U->y_route < y) { U->y_route = y; U->where_stop(U); return (On); } } if (U->y_route < y) { U->y_route += U->y_speed; U->where_stop_but(U, SOUTH); if (U->y_route > y) { U->where_stop(U); U->y_route = y; return (On); } } return (Off); } if (U->y_route == y) { if (U->x_route > x) { U->x_route -= U->x_speed; U->where_stop_but(U, WEST); if (U->x_route < x) { U->where_stop(U); U->x_route = x; return (On); } } if (U->x_route < x) { U->x_route += U->x_speed; U->where_stop_but(U, EAST); if (U->x_route > x) { U->where_stop(U); U->x_route = x; return (On); } } return (Off); } if (U->x_route > x) { U->x_route -= U->x_speed; if (U->x_route < x)U->x_route = x; if (U->y_route > y) { U->y_route -= U->y_speed; U->where_stop_but_and(U, NORTH, WEST); if (U->y_route < y)U->y_route = y; } if (U->y_route < y) { U->where_stop_but_and(U, SOUTH, WEST); U->y_route += U->y_speed; } } if (U->x_route < x) { U->x_route += U->x_speed; if (U->x_route > x)U->x_route = x; if (U->y_route < y) { U->y_route += U->y_speed; U->where_stop_but_and(U, SOUTH, EAST); if (U->y_route > y)U->y_route = y; } if (U->y_route > y) { U->y_route -= U->y_speed; U->where_stop_but_and(U, NORTH, EAST); if (U->y_route < y)U->y_route = y; } } return (Off); } PLACE_CALL STATUS PLACE_TYPE place_user_route(CHAINED * user, BP32 x, BP32 y) { if (user && USER_C(user->it)->object && bit_is_on(USER_C(user->it)->object->status, OBJECT_VISIBLE)) { OBJECT_SET * U = USER_C(user->it)->object; if (U->x_route == x && U->y_route == y) { obj_where_stop_all(U); return (On); } //printf("xs %f ys %f\n",object->x_speed,object->y_speed); return (place_user_move(U, x, y)); } return (Off); } #define sign(x) ((x > 0) ? 1 : ((x < 0) ? -1 : 0) ) PLACE_CALL STATUS PLACE_TYPE place_user_straight(CHAINED * user, BP32 x1, BP32 y1) { if (user && USER_C(user->it)->object && bit_is_on(USER_C(user->it)->object->status, OBJECT_VISIBLE)) { OBJECT_SET * O = USER_C(user->it)->object; BP32 dx, dy; dx = x1 - O->x_route; dy = y1 - O->y_route; static BP32 x = -1, y = -1, p = -1; if (x == -1)x = O->x_route; if (y == -1)y = O->y_route; if (p == -1)p = 2 * dy - dx; printf("x %lf y %lf\n", x, y); if (x < x1) { if (p >= 0) { y = y + 1; p = p + 2 * dy - 2 * dx; } else { p = p + 2 * dy; } x = x + 1; } else { O->x_route = x; O->y_route = y; x = -1; y = -1; p = -1; return (On); } O->x_route = x; O->y_route = y; x = -1; y = -1; p = -1; } return (Off); } a função user_place_straight foi minha tentativa de implementar bresenham que promete fazer o que estou tentando.
       
      Isso é o que fá fiz com o motor: https://www.youtube.com/watch?v=nuLi_lB6c4Y&feature=youtu.be
       
      Mas até agora não estou conseguindo resultado
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.