c语言 修改指定坐标内容,怎么修改txt文件中某个位置的数据

C/C++ code#include

#include

#include

#define MAX_LEN 20

#define ARR_LEN 50

struct st_strdata

{

char thickness[MAX_LEN];

char u1[MAX_LEN];

char u2[MAX_LEN];

char a0[MAX_LEN];

char a1[MAX_LEN];

};

int main()

{

int nRes = 0;

int i = 0;

int iCount = 0;

struct st_strdata sdata[ARR_LEN] = {0};

FILE* fp = fopen("ma.txt", "r");

i = 0;

iCount = 0;

while(1)

{

nRes = fscanf(fp, "%s%s%s%s%s",

sdata[i].thickness,

&sdata[i].u1,

&sdata[i].u2,

&sdata[i].a0,

&sdata[i].a1);

++iCount;

++i;

if(-1 == nRes)

{

break;

}

}

fclose(fp);

printf("原数据: \n");

for(i = 0; i

{

printf("%s %s %s %s %s\n",

sdata[i].thickness,

sdata[i].u1,

sdata[i].u2,

sdata[i].a0,

sdata[i].a1);

}

printf("\n");

fp = fopen("ma.txt", "w");

for(i = 0; i

{

if(0 == strcmp(sdata[i].u1, "u1"))

{

fprintf(fp, "%s %s %s %s %s\n",

sdata[i].thickness,

sdata[i].u1,

sdata[i].u2,

sdata[i].a0,

sdata[i].a1);

continue;

}

if (0 == strcmp(sdata[i].thickness, "0.19-0.199"))

{

if (0 == strcmp(sdata[i].u1, "0.2"))

{

strcpy(sdata[i].u1, "0.19");

}

if (0 == strcmp(sdata[i].u2, "0.115"))

{

strcpy(sdata[i].u2, "0.11");

}

if (0 == strcmp(sdata[i].a0, "-5"))

{

strcpy(sdata[i].a0, "-4");

}

if (0 == strcmp(sdata[i].a1, "-2"))

{

strcpy(sdata[i].a1, "-1.8");

}

}

if (0 == strcmp(sdata[i].thickness, "0.20-0.209"))

{

if (0 == strcmp(sdata[i].u1, "0.196"))

{

strcpy(sdata[i].u1, "0.18");

}

if (0 == strcmp(sdata[i].u2, "0.1145"))

{

strcpy(sdata[i].u2, "0.10");

}

if (0 == strcmp(sdata[i].a0, "-5"))

{

strcpy(sdata[i].a0, "-4");

}

if (0 == strcmp(sdata[i].a1, "-2"))

{

strcpy(sdata[i].a1, "-1.8");

}

}

fprintf(fp, "%s %s %s %s %s\n",

sdata[i].thickness,

sdata[i].u1,

sdata[i].u2,

sdata[i].a0,

sdata[i].a1);

}

fclose(fp);

return 0;

}