用fseek和fread读取文件一行 文件内指针不动啊 怎么回事?fgets也是

2024年11月27日 16:51
有4个网友回答
网友(1):

不需要 fseek。
fread 自己会推进指针,每次 1。
把输入语句抽出来可以写成:

char command[100];
int offset=0,len,k=0;

pFile = fopen("abc.txt","rb");
while(!feof(pFile))
{
WaitForSingleObject(hMutex,INFINITE);
while(1)
{
fread(&command[k],1,1,pFile);
if (feof(pFile)) break;
k++;
if (command[k-1]=='\n')
{
command[k-1] = '\0'; // 加一个结束符
len=k;
k=0;
break;
}
}
if (feof(pFile)) break;
// printf("%s\n",command);
}
fclose(pFile);

网友(2):

while (!feof(pFile))
{
WaitForSingleObject(hMutex,INFINITE);
while(1)
{

}
}
执行完内循环,跳到外循环,没释放互斥,死等了

------------应该就这问题了,睡觉去了~~~zzz~~

网友(3):

请教句,文件指针句柄被关闭了,那个while(!feof(pfile))还会执行吗,我没源程序,否则应该是很好调的

网友(4):

发过来看看