从文件读取并存储到缓冲区中

时间:2014-02-21 19:49:49

标签: c multithreading multidimensional-array producer-consumer

有人可以告诉我,在生产者消费者问题中,如何从文件中读取一行并存储到10号缓冲区中?

static char buf[10][256];
void *producer( void *var)
{
    char  line[256];
    int i;
  for(;;)
  {
    if(feof)
        break;

    for(i=0;i<10, i++)
        buf = fgets(line,256, in);  // what should be the correct coding here to read from file and store in buffer ?


    if ( pushInBuffer( &buf ) )
        fprintf( stderr, "Error Consuming" );


  }

pthread_exit( 0 );
}

2 个答案:

答案 0 :(得分:1)

应该是

  fgets(buf[i],256, in);

答案 1 :(得分:0)

其他答案也很有效,我通常会选择

fscanf(in, "%d", &buf[i]) 

fscanf只读到空白,所以最好只在你知道读取文件的结构时使用它(例如fscanf(fp,“%d%d%s”,&amp; i1,&amp; i2,string ),在我看来通常更紧凑。