如何编辑文件的数据文件处理C

时间:2019-02-05 12:52:56

标签: c file-handling

我想知道是否可以使用fseek()编辑文件中变量的值。我在网上看到的所有教程都是关于编辑文本的,但是如何使用fseek()编辑值。 我的程序的工作原理如下:用户输入姓名,性别和年龄。用户可以输入任意数量的数据。现在,用户搜索名称;并显示该名称的性别和年龄。然后提示用户编辑年龄。输入新的年龄后,现在将编辑文件,并写入新的年龄。

这是我的代码:

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

struct data
{
char name[30];
char gender[10];
int age;
};

int main(void)
{
struct data client;

FILE* fp;
char ch = 0;
do
{
    printf("Enter Name: ");
    scanf("%s", client.name);

    printf("Enter Gender: ");
    scanf("%s", client.gender);

    printf("Enter Age: ");
    scanf("%d", &client.age);

    fp = fopen("data.txt", "ab");
    fwrite(&client, sizeof(client), 1, fp);
    fclose(fp);
    printf("continue? \n");
    scanf(" %c", &ch);
} while (ch != 'n'); // continuously appends file till letter n is read;

char input[30]; // user input
printf("name?\n"); 
scanf("%s", input);

struct data Read; 
fp = fopen("data.txt", "rb");
int newAge;
while (fread(&client, sizeof(client), 1, fp))
{
    if (strcmp(client.name, input) == 0) // compare variable with user input
    {
        printf("%s", client.name);
        printf("       %s", client.gender);
        printf("      %d y/o", client.age);
        printf("\n");
        printf("enter new age"); 
        scanf("%d", &newAge);

        //fseek function
    }
}
return 0;
}

希望有人可以提供帮助。

0 个答案:

没有答案