não consigo criar arquivo no progama

1. não consigo criar arquivo no progama

ernesto lopes
ernesto lopes

(usa Ubuntu)

Enviado em 11/12/2011 - 18:44h




  


2. Re: não consigo criar arquivo no progama

ernesto lopes
ernesto lopes

(usa Ubuntu)

Enviado em 11/12/2011 - 18:50h

tenho que criar um arquvivo que tenha nome esobre nome
idade
separados em estruturas so que nao consigo nem criar o arquivo peço ajuda aos companheiros

#include <stdio.h>//biblioteca para entrada e saída de dados.
#include <stdlib.h>//biblioteca para alocação de memoria e para os vetores.
#include <string.h>//biblioteca para manipular strings.

typedef struct {
char nome[50];
char sobrenome[50];

}nomecont; // estrurura que guarda os dados dos nomes
typedef struct {
int dia;
int mes ;
int ano;
}dtnasc;//estrura que guarda os dados da data de nascimento
typedef struct {
int ddd;
int numero;

}telefone;//estrutura que guarda os telefones das pessoas

//cabeçalho das funções utilisadas no progama
void criararquivo(void);
void menu (void);
void cadastrar_contato(void);
void procurar_contato_nome(void);
void procurar_contato_sobrenome(void);
void ver_aniversariante(void);
void editar_contato(void);

int main(){//função principal do progama chama as funções que editam o arquivo.
dtnasc contatosnasc[20];//vetor que guarada
nomecont nomecontatos[20];//vetor que guarda contatos
telefone tel[20];

void criararquivo();//função que cria o arquivo .
void menu();//função responsavel pela escolha de que ação você vai ser escolhida.



return(0);//retorno da função main .
}
void criararquivo()
{

FILE *arquivo;
arquivo= fopen("agenda.txt","w");//cria arquivo .
if(arquivo==NULL){//testa arquivo para ver se foi aberto
printf("erro ao abrir o arquivo ");
}
fclose(arquivo);
void menu(){

char opcao[10];
printf ("Escolha uma opcao:\n[c] cadastrar Contato\n[b]buscar contato por nome \n[o]buscar contato por sobrenome\n[v]ver aniversariantes do mes \n[e]Editar contato\n[S]air\n\n");
while (1)
{
printf (">> ");
gets (opcao);
switch (opcao[0])
{
case 'c':
case 'C':
cadastrar_contato();
break;
case 'b':
case 'B':
procurar_contato_nome ();
break;
case 'o':
case 'O':
procurar_contato_sobrenome();
break;
case 'e':
case 'E':
editar_contato ();
break;

case 's':
case 'S':
exit(0);
default:
printf ("\aOpcao invalida!\n");
}
}
}




3. Re: não consigo criar arquivo no progama

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 11/12/2011 - 22:04h

Para facilitar coloca o código entre as tags ['code'] ['/code'] sem as aspas.

Assim, o código fica mais legível e especifica melhor a dúvida.


4. Re: não consigo criar arquivo no progama

Willian
ThePinkSharK

(usa Slackware)

Enviado em 11/12/2011 - 22:59h

Primeiro arruma esse código ai para que ele fique legível, siga oq ue o Sr. acima disse.
Segundo, O Sr. está executando o programa compilado num diretorio especifico ou está clicando dus vezes em cima dele? a agenda.txt será criada no diretório onde o programa for executado.
Terceiro, o programa não grava nada noa rquivo ele só pega dados com o gets (aprenda a usar o scanf e large o gets ele é perigoso).
Quarto e ultimo, o Sr. abre o arquivo e fecha ele em seguida, sem nem sequer gravar nada nele.

OBs. código de dificil leitura posso estar errado.


5. Re: não consigo criar arquivo no progama

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 11/12/2011 - 23:44h

ThePinkSharK escreveu:

Primeiro arruma esse código ai para que ele fique legível, siga oq ue o Sr. acima disse.
Segundo, O Sr. está executando o programa compilado num diretorio especifico ou está clicando dus vezes em cima dele? a agenda.txt será criada no diretório onde o programa for executado.
Terceiro, o programa não grava nada noa rquivo ele só pega dados com o gets (aprenda a usar o scanf e large o gets ele é perigoso).
Quarto e ultimo, o Sr. abre o arquivo e fecha ele em seguida, sem nem sequer gravar nada nele.

OBs. código de dificil leitura posso estar errado.


Já ajustei espero que fique legivel
bom concordo com o nosso amigo ThePinkSharK


6. Re: não consigo criar arquivo no progama

Willian
ThePinkSharK

(usa Slackware)

Enviado em 12/12/2011 - 00:43h

Só um outro detalhe, todas as funções devem ser definidas antes de utilizadas, ou seja antes do main.


7. modifiqueito codigo espero que esteja mais facil de entender

ernesto lopes
ernesto lopes

(usa Ubuntu)

Enviado em 13/12/2011 - 20:56h


#include <stdio.h>//biblioteca para entrada e saída de dados.
#include <stdlib.h>//biblioteca para alocação de memoria e para os vetores.
#include <string.h>//biblioteca para manipular strings.

typedef struct {
char nome[50];
char sobrenome[50];

}nomecont; // estrurura que guarda os dados dos nomes
typedef struct {
int dia;
int mes ;
int ano;
}dtnasc;//estrura que guarda os dados da data de nascimento
typedef struct {
int ddd;
int numero;

}telefone;//estrutura que guarda os telefones das pessoas

//cabeçalho das funções utilisadas no progama
void criararquivo(void);
void menu (void);
void cadastrar_contato(void);
void procurar_contato_nome(void);
void procurar_contato_sobrenome(void);
void ver_aniversariante(void);
void editar_contato(void);

int numero_de_contatos=0;//numero de contatos que você tera na agenda

dtnasc contatosnasc[numero_de_contatos];//vetor que guarda o aniversarrio dos contatos
nomecont nomecontatos[numero_de_contatos];//vetor que guarda contatos
telefone tel[numero_de_contatos];//vetor que guarda o telefone dos contatos


int main() {//função principal do progama chama as funções que editam o arquivo.


void criararquivo();//função que cria o arquivo .
void menu();//função responsavel pela escolha de que ação você vai ser escolhida.



return(0);//retorno da função main .
}
void criararquivo()
{

FILE *arquivo;
arquivo= fopen("agenda.txt","a");//cria arquivo .
if(arquivo==NULL){//testa arquivo para ver se foi aberto
printf("erro ao abrir o arquivo ");
}
fclose(arquivo);
}
void menu(){

char opcao[10];
printf ("Escolha uma opcao:\n[c] cadastrar Contato\n[b]buscar contato por nome \n[o]buscar contato por sobrenome\n[v]ver aniversariantes do mes \n[e]Editar contato\n[S]air\n\n");
while (1)
{
printf (">> ");
gets (opcao);
switch (opcao[0])
{
case 'c':
case 'C':
cadastrar_contato();
break;
case 'b':
case 'B':
procurar_contato_nome ();
break;
case 'o':
case 'O':
procurar_contato_sobrenome();
break;
case 'e':
case 'E':
editar_contato ();
break;

case 's':
case 'S':
exit(0);
default:
printf ("\aOpcao invalida!\n");
}
}
}
void cadastrar_contato(){
numero_de_contatos++;//aumenta o numeros de contatos cada vez que e chamada
printf("Digite o nome do contato ");
scanf("%s",nomecontatos[numero_de_contatos].nome);
printf("Digite o sobrenome ");
scanf("%s",nomecontatos[numero_de_contatos].sobrenome);
printf("digite o dia do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].dia);
printf("digite o mês do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].mes);
printf("digite o ano do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].ano);
printf("Digite o ddd do contato ");
scanf("%d",tel[numero_de_contatos].ddd);
printf("Digite o telefone do contato ");
scanf("%d",tel[numero_de_contatos].numero);

FILE arq *;
arq=fopen("agenda.txt","a") ;//abre o arquivo para adicionar ao final dele
if (arq==NULL){
printf("erro ao abrir o arquivo ");
}

fprintf(arq,"%s %s",nomecontatos[numero_de_contatos].nome,nomecontatos[numero_de_contatos].sobrenome);//imprime os dados das pessoas no arquivo
fprintf(arq,"%d %d %d ",contatosnasc[numero_de_contatos].dia,contatosnasc[numero_de_contatos].mes,contatosnasc[numero_de_contatos].ano)
fprintf(arq,"%d %d ",tel[numero_de_contatos].ddd,tel[numero_de_contatos].numero);
fprint ()
fclose(arq);//fecha o arquivo
void menu ();


}
void procurar_contato_nome(){
int i,j=0 ;
char nomecomp[50];
Printf("digite o nome do contato procurado ");
scanf("%s",&nomecomp);
for (i=1;i<=numero_de_contatos;i++){

if (nomecomp==nomecontatos[i].nome) {//testa se o nome que esta quardado no vetor de estrutura é o procurado
printf ("nome encontrado \n ");
printf(" %s %s ",nomecontatos[i].nome,nomecontatos[i].sobrenome);//imprime na tela o nome encontrado
printf(" %d %d %d ",contatosnasc[i].dia,contatosnasc[i].mes,contatosnasc[i].ano);//impreme na tela o data nascimento
printf(" %d %d ",tel[i].ddd,tel[i].numero);
j=1;
}

}

else(j==0){
printf("nome não encontrado ");}
void menu();

}
void procurar_contato_sobrenome(){

int k,l=0 ;
char nomecomps[50];
Printf("digite o nome do contato procurado ");
scanf("%s",&nomecomps);
for (k=1;i<=numero_de_contatos;k++){

if (nomecomp==nomecontatos[i].sobrenome) {//testa se o nome que esta quardado no vetor de estrutura é o procurado
printf ("sobrenome encontrado \n ");
printf(" %s %s ",nomecontatos[i].nome,nomecontatos[i].sobrenome);//imprime na tela o nome encontrado
printf(" %d %d %d ",contatosnasc[i].dia,contatosnasc[i].mes,contatosnasc[i].ano);//impreme na tela o data nascimento
printf(" %d %d ",tel[i].ddd,tel[i].numero);
l=1;
}

}

else(l==0){
printf("sobrenome não encontrado. ")}//se nao encontrar imprime que não encontrou ;
void menu() ;
}

void ver_aniversariante(){//função que procura se o mês informado tem algum aniversariante
int m,n=0;
printf("digite o numero do mes qua deseja saber os aniversariantes ") ;
scanf("%d ",m);
for (n=1;n<=numero_de_contatos;n++){

if (m==contatosnasc[i].mes) {//testa se o mes que esta quardado no vetor de estrutura é o procurado pela pessoa
printf ("pessoas que fasem aniversario nesse mês são ");
printf ("%s",nomecontatos[] )

n=1;
}

}

else if(n==0){
printf("sem aniversariantes nesse mes . ");}
void menu() ;
}
void editar_contato(){





}
quero criar o arquivo no mesmo local que esta o executavel


8. refurmulei o codigo e da dos warnings e nao compila

ernesto lopes
ernesto lopes

(usa Ubuntu)

Enviado em 18/12/2011 - 01:20h

#include <stdio.h>//biblioteca para entrada e saída de dados.
#include <stdlib.h>//biblioteca para alocação de memoria e para os vetores.
#include <string.h>//biblioteca para manipular strings.

struct nomecont{
char nome[50];
char sobrenome[50];

}; // estrurura que guarda os dados dos nomes
struct dtnasc {
int dia;
int mes ;
int ano;};//estrura que guarda os dados da data de nascimento

struct telefone {
int ddd;
int numero;

};//estrutura que guarda os telefones das pessoas

//cabeçalho das funções utilisadas no progama
void criararquivo(void);
void menu (void);
void cadastrar_contato(void);
void procurar_contato_nome(void);
void procurar_contato_sobrenome(void);
void ver_aniversariante(void);

int numero_de_contatos=0;//numero de contatos que você tera na agenda

struct dtnasc contatosnasc[100];//vetor que guarda o aniversarrio dos contatos
struct nomecont nomecontatos[100000];//vetor que guarda contatos
struct telefone tel[1000000];//vetor que guarda o telefone dos contatos


int main() {//função principal do progama chama as funções que editam o arquivo.


void criararquivo();//função que cria o arquivo .
void menu();//função responsavel pela escolha de que ação você vai ser escolhida.



return(0);//retorno da função main .
}
void criararquivo()
{

FILE *arquivo;
arquivo= fopen("agenda.txt","a");//cria arquivo .
if(arquivo==NULL){//testa arquivo para ver se foi aberto
printf("erro ao abrir o arquivo ");
}
fclose(arquivo);//fecha arquivo
void menu();//chama a função de menu

}
void menu(){

char opcao[10];
printf ("Escolha uma opcao:\n[c] cadastrar Contato\n[b]buscar contato por nome \n[o]buscar contato por sobrenome\n[v]ver aniversariantes do mes \n[e]Editar contato\n[S]air\n\n");
while (1)
{
printf (">> ");
gets (opcao);
switch (opcao[0])
{
case 'c':
case 'C':
cadastrar_contato();
break;
case 'b':
case 'B':
procurar_contato_nome ();
break;
case 'o':
case 'O':
procurar_contato_sobrenome();
break;

case 's':
case 'S':
exit(0);
default:
printf ("\aOpcao invalida!\n");
}
}
}
void cadastrar_contato(){
numero_de_contatos++;//aumenta o numeros de contatos cada vez que e chamada
printf("Digite o nome do contato ");
scanf("%s",nomecontatos[numero_de_contatos].nome);
printf("Digite o sobrenome ");
scanf("%s",nomecontatos[numero_de_contatos].sobrenome);
printf("digite o dia do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].dia);
printf("digite o mês do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].mes);
printf("digite o ano do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].ano);
printf("Digite o ddd do contato ");
scanf("%d",tel[numero_de_contatos].ddd);
printf("Digite o telefone do contato ");
scanf("%d",tel[numero_de_contatos].numero);

FILE *arq ;
arq=fopen("agenda.txt","a") ;//abre o arquivo para adicionar ao final dele
if (arq==NULL){
printf("erro ao abrir o arquivo ");
}

fprintf(arq,"%s %s",nomecontatos[numero_de_contatos].nome,nomecontatos[numero_de_contatos].sobrenome);//imprime os dados das pessoas no arquivo
fprintf(arq,"%d %d %d ",contatosnasc[numero_de_contatos].dia,contatosnasc[numero_de_contatos].mes,contatosnasc[numero_de_contatos].ano);
fprintf(arq,"%d %d ",tel[numero_de_contatos].ddd,tel[numero_de_contatos].numero);

fclose(arq);//fecha o arquivo
void menu ();


}
void procurar_contato_nome(){
int i,j=0 ;
char nomecomp[50];
Printf("digite o nome do contato procurado ");
scanf("%s",&nomecomp);
for (i=1;i<=numero_de_contatos;i++){

if (nomecomp==nomecontatos[i].nome) {//testa se o nome que esta quardado no vetor de estrutura é o procurado
printf ("nome encontrado \n ");
printf(" %s %s ",nomecontatos[i].nome,nomecontatos[i].sobrenome);//imprime na tela o nome encontrado
printf(" %d %d %d ",contatosnasc[i].dia,contatosnasc[i].mes,contatosnasc[i].ano);//impreme na tela o data nascimento
printf(" %d %d ",tel[i].ddd,tel[i].numero);
j=1;
}

}

if(j==0){
printf("nome não encontrado ");}
void menu();

}
void procurar_contato_sobrenome(){

int k,l=0 ;
char nomecomps[50];
Printf("digite o nome do contato procurado ");
scanf("%s",&nomecomps);
for (k=1;k<=numero_de_contatos;k++){

if (nomecomps==nomecontatos[k].sobrenome) {//testa se o nome que esta quardado no vetor de estrutura é o procurado
printf ("sobrenome encontrado \n ");
printf(" %s %s ",nomecontatos[k].nome,nomecontatos[k].sobrenome);//imprime na tela o nome encontrado
printf(" %d %d %d ",contatosnasc[k].dia,contatosnasc[k].mes,contatosnasc[k].ano);//impreme na tela o data nascimento
printf(" %d %d ",tel[k].ddd,tel[k].numero);
l=1;
}

}

if(l==0){
printf("sobrenome não encontrado. ");}//se nao encontrar imprime que não encontrou ;
void menu() ;
}

void ver_aniversariante(){//função que procura se o mês informado tem algum aniversariante
int m,n=0;
printf("digite o numero do mes qua deseja saber os aniversariantes ") ;
scanf("%d ",m);
for (n=1;n<=numero_de_contatos;n++){

if (m==contatosnasc[n].mes) {//testa se o mes que esta quardado no vetor de estrutura é o procurado pela pessoa
printf ("pessoas que fasem aniversario nesse mês são ");
printf ("%s",nomecontatos );

n=1;
}

}

if(n==0){
printf("sem aniversariantes nesse mes . ");}
void menu() ;
}



9. refurmulei o codigo e da dos warnings e nao compila

ernesto lopes
ernesto lopes

(usa Ubuntu)

Enviado em 18/12/2011 - 01:21h

#include <stdio.h>//biblioteca para entrada e saída de dados.
#include <stdlib.h>//biblioteca para alocação de memoria e para os vetores.
#include <string.h>//biblioteca para manipular strings.

struct nomecont{
char nome[50];
char sobrenome[50];

}; // estrurura que guarda os dados dos nomes
struct dtnasc {
int dia;
int mes ;
int ano;};//estrura que guarda os dados da data de nascimento

struct telefone {
int ddd;
int numero;

};//estrutura que guarda os telefones das pessoas

//cabeçalho das funções utilisadas no progama
void criararquivo(void);
void menu (void);
void cadastrar_contato(void);
void procurar_contato_nome(void);
void procurar_contato_sobrenome(void);
void ver_aniversariante(void);

int numero_de_contatos=0;//numero de contatos que você tera na agenda

struct dtnasc contatosnasc[100];//vetor que guarda o aniversarrio dos contatos
struct nomecont nomecontatos[100000];//vetor que guarda contatos
struct telefone tel[1000000];//vetor que guarda o telefone dos contatos


int main() {//função principal do progama chama as funções que editam o arquivo.


void criararquivo();//função que cria o arquivo .
void menu();//função responsavel pela escolha de que ação você vai ser escolhida.



return(0);//retorno da função main .
}
void criararquivo()
{

FILE *arquivo;
arquivo= fopen("agenda.txt","a");//cria arquivo .
if(arquivo==NULL){//testa arquivo para ver se foi aberto
printf("erro ao abrir o arquivo ");
}
fclose(arquivo);//fecha arquivo
void menu();//chama a função de menu

}
void menu(){

char opcao[10];
printf ("Escolha uma opcao:\n[c] cadastrar Contato\n[b]buscar contato por nome \n[o]buscar contato por sobrenome\n[v]ver aniversariantes do mes \n[e]Editar contato\n[S]air\n\n");
while (1)
{
printf (">> ");
gets (opcao);
switch (opcao[0])
{
case 'c':
case 'C':
cadastrar_contato();
break;
case 'b':
case 'B':
procurar_contato_nome ();
break;
case 'o':
case 'O':
procurar_contato_sobrenome();
break;

case 's':
case 'S':
exit(0);
default:
printf ("\aOpcao invalida!\n");
}
}
}
void cadastrar_contato(){
numero_de_contatos++;//aumenta o numeros de contatos cada vez que e chamada
printf("Digite o nome do contato ");
scanf("%s",nomecontatos[numero_de_contatos].nome);
printf("Digite o sobrenome ");
scanf("%s",nomecontatos[numero_de_contatos].sobrenome);
printf("digite o dia do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].dia);
printf("digite o mês do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].mes);
printf("digite o ano do nascimento");
scanf("%d",contatosnasc[numero_de_contatos].ano);
printf("Digite o ddd do contato ");
scanf("%d",tel[numero_de_contatos].ddd);
printf("Digite o telefone do contato ");
scanf("%d",tel[numero_de_contatos].numero);

FILE *arq ;
arq=fopen("agenda.txt","a") ;//abre o arquivo para adicionar ao final dele
if (arq==NULL){
printf("erro ao abrir o arquivo ");
}

fprintf(arq,"%s %s",nomecontatos[numero_de_contatos].nome,nomecontatos[numero_de_contatos].sobrenome);//imprime os dados das pessoas no arquivo
fprintf(arq,"%d %d %d ",contatosnasc[numero_de_contatos].dia,contatosnasc[numero_de_contatos].mes,contatosnasc[numero_de_contatos].ano);
fprintf(arq,"%d %d ",tel[numero_de_contatos].ddd,tel[numero_de_contatos].numero);

fclose(arq);//fecha o arquivo
void menu ();


}
void procurar_contato_nome(){
int i,j=0 ;
char nomecomp[50];
Printf("digite o nome do contato procurado ");
scanf("%s",&nomecomp);
for (i=1;i<=numero_de_contatos;i++){

if (nomecomp==nomecontatos[i].nome) {//testa se o nome que esta quardado no vetor de estrutura é o procurado
printf ("nome encontrado \n ");
printf(" %s %s ",nomecontatos[i].nome,nomecontatos[i].sobrenome);//imprime na tela o nome encontrado
printf(" %d %d %d ",contatosnasc[i].dia,contatosnasc[i].mes,contatosnasc[i].ano);//impreme na tela o data nascimento
printf(" %d %d ",tel[i].ddd,tel[i].numero);
j=1;
}

}

if(j==0){
printf("nome não encontrado ");}
void menu();

}
void procurar_contato_sobrenome(){

int k,l=0 ;
char nomecomps[50];
Printf("digite o nome do contato procurado ");
scanf("%s",&nomecomps);
for (k=1;k<=numero_de_contatos;k++){

if (nomecomps==nomecontatos[k].sobrenome) {//testa se o nome que esta quardado no vetor de estrutura é o procurado
printf ("sobrenome encontrado \n ");
printf(" %s %s ",nomecontatos[k].nome,nomecontatos[k].sobrenome);//imprime na tela o nome encontrado
printf(" %d %d %d ",contatosnasc[k].dia,contatosnasc[k].mes,contatosnasc[k].ano);//impreme na tela o data nascimento
printf(" %d %d ",tel[k].ddd,tel[k].numero);
l=1;
}

}

if(l==0){
printf("sobrenome não encontrado. ");}//se nao encontrar imprime que não encontrou ;
void menu() ;
}

void ver_aniversariante(){//função que procura se o mês informado tem algum aniversariante
int m,n=0;
printf("digite o numero do mes qua deseja saber os aniversariantes ") ;
scanf("%d ",m);
for (n=1;n<=numero_de_contatos;n++){

if (m==contatosnasc[n].mes) {//testa se o mes que esta quardado no vetor de estrutura é o procurado pela pessoa
printf ("pessoas que fasem aniversario nesse mês são ");
printf ("%s",nomecontatos );

n=1;
}

}

if(n==0){
printf("sem aniversariantes nesse mes . ");}
void menu() ;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts