>can u help me?
Try something more like this:
Code:
/* Return non-zero for success, zero for failure */
int update_field(char *phone, char *new_phone)
{
FILE *file;
FILE *temp;
FILE *save;
char buff[BUFSIZ];
if ((file = fopen("names.txt", "r")) == NULL) {
perror("update_field -- fopen");
return 0;
}
if ((temp = tmpfile()) == NULL) {
perror("update_field -- tmpfile");
fclose(file);
return 0;
}
while (fgets(buff, sizeof buff, file) != NULL) {
if (strstr(buff, phone) != NULL)
fputs(new_phone, temp);
else
fputs(buff, temp);
}
if ((save = freopen("names.txt", "w", file)) == NULL) {
perror("update_field -- freopen");
fclose(file);
fclose(temp);
return 0;
}
file = save;
rewind(temp);
while (fgets(buff, sizeof buff, temp) != NULL)
fputs(buff, file);
fclose(file);
fclose(temp);
return 1;
}