我已经给出了它应该读取的文件。当它遇到 *
符号时,它应该使用结构的下一个成员进行更新。下面提供了输入文件。
*1234567890*2223334445*santoshkumar.c.*5/13,bangalore,karnataka*
0987654321*6665554447*nirmal*13/5,bangalore,karnataka*
#define N 5
struct data{
char userid[10];
char cardid[10];
char name[30];
char address[100];
};
int main(){
struct data input[N];
FILE *fp;
fp=fopen("input.txt","r");
if(fp==NULL)
{
printf("file open failed \n");
return -1;
}
for(i=0;i<N;i++){
fscanf("%s*%s*%s*%s*%s",&input.userid[i],&input.cardid[i],&input.name[i],&input.address[i]);
}
for(i=0;i<N;i++){
printf("%s%s%s%s%s",input.userid[i],input.cardid[i],input.name[i],input.address[i]);
}
fclose(fp);
}
最佳答案
更改您的声明
struct data{
char userid[11]; // +1 for NULL
char cardid[11];
char name[31];
char address[101];
};
struct data input[5]; //not record. below you used input.
然后尝试这样
fscanf(fp, "%s*%s*%s*%s*%s",&input[i].userid, &input[i].cardid, &input[i].name, &input[i].address);
在fscanf
中,第一个参数是文件指针,即您要读取的文件。
关于c - 我需要编写一个程序,从文件中读取并将其更新为结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260215/