【发布时间】:2017-01-09 01:58:38
【问题描述】:
当我使用 fscanf 和 C 读取文件时使用以下内容跳过一行时,我收到以下编译器警告:
warning: too many arguments for format [-Wformat-extra-args]
fscanf(myFile, "%*[^\n]\n", NULL);
该程序运行良好。但是,我想知道是否有一种方法可以跳过文件中的一行,它与上述一样简约并且不给出编译器警告(或者对上述内容进行简单的编辑是理想的)?这种跳过一行的方法取自How to skip the first line when fscanning a .txt file?,其中没有提到任何此类警告。上一个问题中介绍了其他跳线方法;然而,没有一个像上面那样简约。
【问题讨论】:
-
fscanf(myFile, "%*[^\n]\n", NULL);-->fscanf(myFile, "%*[^\n]\n");但其他代码会更好。 -
简单。说到点子上了。不再有编译器警告。干杯,@chux。
-
有趣。谢谢,乔纳森!我将研究 fgets(),因为您和 chux 都认为 fscanf 的这种实现可能不是最佳选择。
标签: c