Como implementar um método fwrite, fopen e fread nessa LSE?

Tentei, mas até agora não funciona.

Observação: se eu por os dois <> nos include, o formatador desse site apaga

 #include iostream>
 #include string.h>
 #include stdlib.h>
 #include stdio.h>
using namespace std;

struct agenda{
	long telefone;
	char nome[100];
	struct agenda *prox;
	
}*prim,*ult,*aux;



void inclusao(char n[100], long tel);
void listagem();
void exclusao(long tel);
void procurar(long tel);
void contar();
void salvar();

main(){
	int op, resp;
	char n[100];
	long tel;
	
	do{
	
	cout<<"<<<MENU>>"<<endl;
	cout<<"[1] Incluir "<<endl; //Inclui um novo telefone na agenda;
	cout<<"[2] Listar "<<endl; //Lista todos os telefones da agenda;
	cout<<"[3] Excluir "<<endl; // Exclui o nome e telefone da agenda;
	cout<<"[4] Buscar "<<endl; //Busca o nome e telefone da agenda;
	cout<<"[5] Contar "<<endl;// Conta o n° de telefones cadastrados;
	cout<<"[6] Gravar "<<endl;
	cout<<"[7] Sair "<<endl; //Opção para sair do menu.
	cin>>op;
	if(op==1){
		cout<<" CADASTRO DE NOVOS TELEFONES "<<endl;
		
		cout<<"Informe o telefone: ";
		cin>>tel;
		fflush(stdin);
		
		cout<<"Informe o nome: ";
		fgets(n,100,stdin);
		cout<<endl;
		
		inclusao(n, tel);
	}else if(op==2){
		listagem();
	}else if(op==3){
		cout<<"Informe o telefone para remover da agenda: ";
		cin>>tel;
		exclusao(tel);
	}else if(op==4){
		cout<<"Informe o telefone para busca: ";
		cin>>tel;
		procurar(tel);
	}else if(op==5)
		contar();
		else if(op==6)
		salvar();
	cout<<"Deseja Voltar ao Menu? [1]-SIM|[0]-NAO ";
	cin>>resp;
	if(resp==0)
		break;
	}while(op!=7);
}

//Funcao de Inclusao
void inclusao(char n[100], long tel){
	aux = (struct agenda *)malloc(sizeof(struct agenda));
	if(prim==NULL)
		prim=aux;
	else
		ult->prox=aux;
	ult=aux;
	strcpy(ult->nome,n);
	ult->telefone=tel;
	ult->prox=NULL;
	cout<<">-------------------<"<<endl;
	cout<<aux->nome;
	cout<<"foi cadastrado com sucesso! \n";
	cout<<">-------------------<"<<endl;
}

void listagem(){
	aux=prim;
	if(prim!=NULL){
		cout<<">-------------------<"<<endl;
		cout<<"Nomes e Telefones "<<endl;
		cout<<"Nome: "<<prim->nome<<endl;
		cout<<"Telefone: "<<prim->telefone<<endl;
		cout<<">-------------------<"<<endl;
		aux=prim->prox;
		while(aux!=NULL){
		cout<<">-------------------<"<<endl;
		cout<<"Nome: "<<aux->nome<<endl;
		cout<<"Telefone: "<<aux->telefone<<endl;
		cout<<">-------------------<"<<endl;
		aux=aux->prox;
		}
	}else
		cout<<"Agenda Vazia! "<<endl;
}

void exclusao(long tel){
	
	struct agenda *aux2;
	int achei = 0; 
	aux = prim; 
	
	while(aux!= NULL && achei==0) 
	{
		if(aux->telefone == tel) 
		{
			if(aux == prim) 
			{
				if(prim == ult)
				{
					prim = ult = NULL; 
					aux2 = aux;
				}
				else 
				{
					prim= prim->prox; 
					aux2 = aux;
				}
			}
			else if(aux == ult)
			{
				ult = aux2; 
				ult->prox=NULL;                                                                                  
			}
			else
			{
				aux2->prox = aux->prox;
				achei = 1;
				free(aux);
			}
		}
		else 
		{
			aux2 = aux;
			aux = aux->prox;
		}
	}
	if(achei==0)
	{
		cout <<"Telefone nao foi encontrado\n\n\n";	
    }
    else
    {
    	cout <<"Telefone excluido! com sucesso! \n\n"<<endl;
    }    	
}


void procurar(long tel){
	int achei=0;
	aux=prim;
	while(achei==0 && aux!=NULL){
		if(aux->telefone==tel){
			cout<<">-------------------<"<<endl;
			cout<<"Nome: "<<aux->nome<<endl;
			cout<<"Telefone: "<<aux->telefone<<endl;
			cout<<">-------------------<"<<endl;
			achei=1;
			
		}else
			aux=aux->prox;
	}
	if(achei==0){
		cout<<"Nome e telefone nao encontrados! "<<endl;
	}
}

void contar()
{
	int c=0;
	aux = prim;
	while(aux!= NULL)
	{
		c += 1;
		aux = aux->prox;
	}
	cout <<"Numero de telefones cadastrados: "<<c<<"\n\n\n";
	
}

void salvar(){
	
aux=prim;
if(aux!=NULL){
	FILE *file;
	file = fopen("teste.txt", "w");	
	fprintf(file,"Pao com sopa");
	fclose(file);
}



}

void carregar(){
	
}

Não tem como implementar as funções fwrite, fopen e fread, pois elas são (ou fazem) chamadas de sistema, fazem parte da standard library. Você pode utiliza-las. Acredito que você está se referindo ao fato de ter dúvidas em relações a essas funções, seu modo de funcionamento. Se for isso, qual a sua dúvida?

Dica: os includes somem porque você está colocando os brackets (<>) fora do modo de código. Seleciona tudo e clica no botão </> que fica certo, ou então coloca 4 espaços manualmente antes de cada linha.

1 curtida

Enquanto a dica eu saquei rs.
Esse projeto preciso entregar hj ainda, é do workana…
o cliente quer essas funções, então seria impossível implementar elas nessa estrutura? Onde eu poderia aplica-las então?

Você pode utilizar as funções prontas da biblioteca para abrir, ler e escrever em arquivos. Estamos falando sobre a mesma coisa, é só uma confusão de terminologia hehe