2013-03-04 4 views
-4

пытаются использовать FSEEK изменить имя , но он не может вернуться, какой результат я хочу, что имя не может быть модифицировать и остаются теми жеC программирование, функция удаления

struct phonebook { char name[20]; }; 
struct phonebook a; 

char temp[20]; 
cpPtr=fopen("name.txt","rb");//open the file 
while(fread(&a,sizeof(a),1,cpPtr)==1){ 
    printf("Please enter name :\n");//require user to enter name 
    scanf("%s",&temp);//temporary variable 
    fflush(stdin); 
    if(stricmp(a.name,temp)==0){ 
     printf("NAME :%s\n",a.name); 
     else 
      printf("The name is not exist"); 
     getch(); 
    } 

    printf("Please enter new NAME :"); 
    scanf("&s",a.name); 
    fflush(stdin); 
    fseek(cpPtr,-sizeof(a),SEEK_CUR);//is there any wrong with seek? 
    fwrite(&a,sizeof(a),1,cpPtr); 
    fclose(cpPtr); 
    printf("Name is modified"); 
    getch(); 
    system("cls"); 
} 
+4

Пожалуйста, прочтите ваш вопрос и узнайте, можете ли вы понять, что вы просите. Я, конечно, не могу. – Neowizard

+0

, пожалуйста, покажите нам определение «a» –

+0

. Я использую fseek для поиска моего «имени» в файле, затем заменяю имя, но оно не работает – BEAR

ответ

2

Вы открыть файл только для чтения , Вам нужно открыть файл в режиме чтения-записи, если вы хотите читать и писать.

fopen("name.txt","r+b"); // open read+write 
+0

после того, как я сделал это, я также не могу изменить свое имя, оно также останется таким же. – BEAR

+0

Добавьте отладочные заявления, чтобы узнать, что делает программа. – Joni

Смежные вопросы