Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite Pessoal, estou com um projeto e não consegui achar uma solução para um problema.
Primeiro meu código :
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
void gravatmbo()
{
char obra[20], Autor[20], Edit[20],R;
int Cod_area , tombo;
FILE *cadastro;
cadastro = fopen("tombos.txt","a+");
do
{
system("CLS");
printf("---------------CADRASTO DE TOMBOS: ---------------\n\n");
printf("Nome da obra: ");fflush(stdin);
scanf("%[A-Z a-z]",obra);
printf("Nome Do Autor: ");fflush(stdin);
scanf("%[A-Z a-z]",Autor);
printf("Nome Da Editora: ");fflush(stdin);
scanf("%[A-Z a-z]",&Edit);
printf("Cod. De Area: ");fflush(stdin);
scanf("%d",&Cod_area);
printf("N.Tombo: ");fflush(stdin);
scanf("%d",&tombo);
fprintf(cadastro, "%s\n%s\n%s\n%d\n%d\n",obra, Autor,Edit,Cod_area,tombo);
printf("--------------------------------------------------");
printf("\n\n");
printf ("Deseja cadastrar outro tombo ?(S/N)? ");
fflush(stdin);
R = getchar();
}while ((R != 'N')&&(R != 'n'));
fclose(cadastro);
} char data[11],obra[20],R;
int tombo ,nexemplar;
FILE *cadastro;
cadastro = fopen("obras.txt","a+");
do
{
system("CLS");
printf("----------------CADRASTO DE OBRAS----------------\n\n");
printf("Nome da obra: ");fflush(stdin);
scanf("%[A-Z a-z]",obra);
printf("Data de Compra (dd.mm.aaaa): ");fflush(stdin);
scanf("%s",data);
printf("N. Tombo: ");fflush(stdin);
scanf("%d",&tombo);
printf("N.Exemplar: ");fflush(stdin);
scanf("%d",&nexemplar);
fprintf(cadastro, "%s\n%s\n%d\n%d\n",obra,data,tombo,nexemplar);
printf("-------------------------------------------------");
printf("\n\n");
printf ("Deseja cadastrar outra obra?(S/N)? ");fflush(stdin);
R = getchar();
}while ((R != 'N')&&(R != 'n'));
fclose(cadastro);
}
int main(){
int a;
do{
system("cls");
puts("-----------MENU-----------");
puts("1-CADASTRAR TOMBO");
puts("2-CADASTRAR OBRAS");
puts("3-MOSTRAR OBRAS POR AREA");
puts("4-MOSTRAR OBRAS POR AUTOR");
puts("5-MOSTRAR OBRAS POR EDITORA");
puts("6-ENCERRAR PROGRAMA");
puts("--------------------------");
printf("Digite Sua Opcao: ");
scanf("%d",&a);
switch(a){
case 1:gravatmbo(); break;
case 2:gravaobra(); break;
case 3:break;
case 4:break;
case 5:break;
case 6:return 0;break;
default:printf("Numero invalido!\n");break;
}
fflush(stdin);
}while(a!=6);
return 0;
}
Agora o problema, eu estou salvando os dados de cadastro em linhas separadas, há como eu escolher determinadas linhas para imprimir na tela?
Ex.: Ao cadastrar 2 tombos no programa, ele salva 5 dados para cada tombo salvo. Quando eu selecionar no menu para buscar obras por autor ele buscar apenas as linhas que contem os autores, que seriam : 2 e 7. Há alguma forma de fazer isso? Tentei mas não consegui pensar em nada :(
Grato!
Carregando comentários...