while(fgets(str,1024,fp)) while (fscanf(fp, "%[^n]%*[n]", str) != EOF)
在数据量较小时
为5000行数据时
fgets为2个时钟单元单元
fscanf为5个
数据量为10万行时
fgets为45个时钟单元
fscanf为
101个时钟单元
数据量为100万行数据时
fgets为408个时钟单元
fscanf为955个时钟单元
综上来说 fgets比较快,但是fgets缓冲区足够大的话,str后面还会更上个’n’
fscanf在碰到分隔符会停止读取然后fp指针停在分隔符那里



