c - 我需要编写一个程序,从文件中读取并将其更新为结构成员

标签 c

我已经给出了它应该读取的文件。当它遇到 * 符号时,它应该使用结构的下一个成员进行更新。下面提供了输入文件。

*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/

相关文章:

java - 如何伪装窃听接口(interface)流量

c - 从消息队列中读取(如果为空则非阻塞)

c - "sin"函数是如何实现的?

c - 使用 C API 的弱表和 GC 终结器

c++ - 如何在 Visual Studio 中查找静态 c/c++ 库中的函数

c - 获取 Midi 文件时间

c - 如何使用 exec( ) 在程序中执行 Linux 终端命令 diff

c - 将原始索引存储在数组中

c - 如何在没有数组的情况下找到C中最大整数的出现次数?

c++ - 在没有源代码的情况下粘合 C 和 C++ 目标文件