有人可以告诉我,在生产者消费者问题中,如何从文件中读取一行并存储到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 );
}
答案 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 ),在我看来通常更紧凑。