[C] - Como salvar uma STRUCT e reacessa-la ?

Iniciado por solanoalves, 09 de Fevereiro de 2007, 02:03

tópico anterior - próximo tópico

solanoalves

Seguinte galera, se tem algo em C que ainda não sei é como salvar dados para futuramente serem reacessados. Preciso saber disso ou caso contrário não posso prosseguir aprendendo bibliotecas gráficas como GTK que exigem saber disso então decidi perguntar aqui.

aqui um exemplo:

Citar
#include <curses.h>

FILE *arq;
int temp;
char temp2[30];

struct dados
{
char nome[20];  //tem como usar " char * nome " ao invés de  " char nome[20] "??
char endereco[20];
char cidade[20];
}

int main()
{
initscr();
printw("Escolha 1. add ou 2. pesquisar\n");
temp = getch();

switch(temp)
  {
   case '1':
   //aqui vai o codigo para salvar no arquivo os dados adicionados, esse eu sei fazer
   break;

   case '2':
   
   printw("digite um dos dados para busca");
   getstr(temp2);

   if( (arq = fopen("dados.txt","r")) == NULL )
{
//erro
}else{
         //nao sei como fazer para comparar se o texto digitado está presente no arquivo e se estiver como fazer
        // para mostrar os outros dados na tela ,..ex: ele digitou um nome e este está presente no arquivo
       // como fazer para por o nome encontrado o endereço e a cidade do arquivo para o programa ???
       }
  break;
  }

    default:
    break;

endwin();
}
obs: para compilar com ncurses gcc nome.c -o nome -lncurses =P hahheua

bom se tiver alguem, por mais que seja complicada a duvida, para ajudar eu agradeço muito...mesmo que de só uma referencia já ajuda valeu!

Neynder

Kra vi isso ano passado na facul, mas deixei de treinar e esqueci, mas eu tenho uma apostila que explica sua dúvida que aliás é sobre arquivo (isso é soda mesmo, ainda eu não entendo direito), me manda uma mensagem privativa para que envie para seu email pessoal (não esqueça de me fornecer o seu email pessoal ta!)!

Se quiser, estou a disposição para estudos referente a c/c++, eu chego em casa depois das 6 h da tarde (to no trabalho), aí vou aproveitar e dar uma revisada nesse conteudo, te mais!

Lamego

Isso pode ser feito utilizando ficheiros mas é uma forma muito pouco recomendada, para base de dados utilizam-se ou motores de base de dados ou bibliotecas que armazenam os dados em ficheiros.

Algumas sugestões:
http://www.sqlite.org/capi3.html - Requer conhecimentos de SQL
http://www.mathematik.uni-ulm.de/help/BerkeleyDB/reftoc.html
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

daskrs

cara c eu entendi direito a pergunta. vc pode utilizar a lib fstream.
normalmente ela ja em como padrão junto com o gcc.
eu só não te faço um exemplo pq eu to atrasado para trabalho.