Per imparare il linguaggio volevo sviluppare una rubrica elettronica che permettesse di:
1) aggiungere un contatto (ovviamente!);
2) leggere tutti i contatti salvati;
3) cercare un contatto ben preciso.
Finora ho scritto questo:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main () {
char nome [50], numero [20], ricerca_nome[100], ricerca_numero[100];
int i, scelta, cont;
do {
puts ("#### RUBRICA ELETTRONICA ####");
puts ("1) inserisci nuovo contatto");
puts ("2) cerca un contatto");
puts ("3) visualizza tutti i contatti");
puts ("4) clear");
puts ("0) esci");
scanf ("%d", &scelta);
switch (scelta)
{
case 0:
break;
case 1:
printf ("\nAGGIUNGI CONTATTO\n");
printf ("Inserisci il nome: ");
scanf ("%s", nome);
printf ("\nInserisci il numero: ");
scanf ("%s", numero);
for (i = 0; nome[i]; i++) {
nome[i] = toupper (nome[i]); }
FILE *f;
f = fopen ("/home/vincenzo/Documenti/rubrica/rubrica.txt", "a");
fprintf (f, "%s", nome);
fprintf (f, "\t");
fprintf (f, "%s", numero);
fprintf (f, "\n");
fflush(f);
fclose (f);
break;
case 2:
f = fopen ("/home/vincenzo/Documenti/rubrica/rubrica.txt", "r");
do {
ricerca_nome[100] = 'null';
fscanf (f, "\n");
fscanf (f, "%s %s", ricerca_nome, ricerca_numero);
if (strcmp("null", ricerca_nome) == 0)
break;
else
printf ("%s %s\n", ricerca_nome, ricerca_numero);
} while (strcmp("null", ricerca_nome) == 0);
case 3:
case 4:
system ("clear");
break;
default: printf ("Errore\n");
exit(0);
}
} while (scelta != 0);
exit(0);
}
va tutto bene, tranne al punto 2. Ho provato a inserire quel codice ma non va, o meglio mi legge solo la prima riga del file e non gli altri. Come devo fare per fargli leggere tutti i contatti?