ibilalkayy Ответов: 1

Как обновить word в другом файле?


В этом коде я хочу обновить текст в файле, но всякий раз, когда я запускаю код, он не обновляется. Вместо этого он дает ? в новом файле. Как правильно обновить этот код, чтобы он позволял корректно обновлять слово?

Что я уже пробовал:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

void hello(){
    int option;
    char updated_name[50], string[100], read[100];
    static const char * listing[] = {"Name", "Date of birth","ID card number"};
	
  	FILE * fr3 = fopen("file.txt","r");
  	FILE * fw1 = fopen("new.txt","w");
	if (fr3 == NULL || fw1 == NULL) {
	    perror("Unable to read text file.");
	    exit(0);
	}

       for (option = 1; option <= sizeof(listing)/sizeof(char *); ++option)
	  printf("%d. Your %s\n", option, listing[option-1]);  

	fputs("Select your choice to update: ", stdout);
	scanf("%d", &option);
	if (option == 1){
           printf("Enter new name to update: ");
           scanf("%s", &updated_name);

        rewind(fr3); 
        while(fgets(string, 100, fr3) != NULL){
         if (strcmp(read, string) == 0) { 
	    strcpy(read, updated_name); 
	 } 
	fprintf(fw1, "%s ", read);
        }
      }
     fclose(fw1);
   fclose(fr3);
}
int main(){ hello(); }

1 Ответов

Рейтинг:
2

Richard MacCutchan

Вы никогда не устанавливаете никакой информации в read переменная, поэтому сравнивать нечего. Вам нужно спросить у пользователя оба имени, оригинальное и то, на которое оно должно быть изменено.