Salve ragazzi
ho questo problema: il programma creato fa il suo dovere ma va in loop quando deve stampare delle informazioni. Di seguito posto il codice:
codice:
#include <stdio.h>
#include <string.h>
void scrivi();
void cerca();
struct azienda{
char nome[20];
char cognome[20];
int stipendio;
int eta;
}dipendente;
FILE *p;
char r,nome1[20];
int main(int argc,char*argv[]){
scrivi();
cerca();
system ("pause");
return 0;
}
void scrivi(){
p=fopen("Dipendente.txt","w");
if(p!=NULL)
{
do
{
printf("Inserire nome: ");
scanf("%s",&dipendente.nome);
printf("Inserire cognome: ");
scanf("%s",&dipendente.cognome);
printf("Inserire stipendio: ");
scanf("%d",&dipendente.stipendio);
printf("Inserire eta': ");
scanf("%d",&dipendente.eta);
fprintf(p,"% s % s % d % d \n",dipendente.nome,dipendente.cognome,dipendente.stipendio,dipendente.eta);
do
{
printf("Si vuole uscire dall'inserimento?");
scanf("%s",&r);
}while(r!='n' && r!='s');
}while(r=='n');
fclose(p);
}
else{
printf("Errore");
}
}
void cerca(){
p=fopen("Dipendente.txt","r");
if(p!=NULL){
printf("Inserire nome del dipendente da cercare: ");
scanf("%s",&nome1);
fscanf(p,"% s % s % d % d \n",dipendente.nome,dipendente.cognome,dipendente.stipendio,dipendente.eta);
while(!feof(p)){
if(!strcmp(nome1,dipendente.nome)){
printf("Il dipendente %s %s\n ha reddito di %d\n di eta' %d\n ",dipendente.nome,dipendente.cognome,dipendente.stipendio,dipendente.eta);
}
fscanf(p,"% s % s % d % d \n",dipendente.nome,dipendente.cognome,dipendente.stipendio,dipendente.eta);
}
fclose(p);
}
else{
printf("Errore");
}
}
Aiutatemi