【发布时间】:2018-12-31 12:32:43
【问题描述】:
我从 C 手册页了解到,使用 fgets(),在 EOF 或换行符后停止读取。我有一个程序从文件中读取(多行)并在新行的末尾停止读取。
有没有办法强制fgets() 忽略换行符并读到EOF?
while(fgets(str,1000, file))
{
// i do stuffs with str here
}
【问题讨论】:
-
您会考虑使用其他功能吗?因为就
fgets()而言,它会停止一次,它要么得到一个换行符,要么得到一个文件结尾。 -
@P.W:
getline的行为类似于fgets,希望它为您管理内存。它不会解决换行问题。 (但getdelim带有空分隔符可能会起作用。不过,两者都是非标准函数。) -
fgets不是从文件中读取数据的唯一函数。如果您想将整个文件保存在内存中,只需read即可。 (最好确保分配了足够的内存。) -
@MOehm:这是我与 C++
getline的混淆,可以指定分隔符。