我是编程的新手,所以有一些我不知道的基础知识和常识 . 我有一个关于如何正确使用fgets的问题 . 根据对fgets的解释,似乎fgets应该在读取n-1个字符,点击EOF或点击换行符时停止 . 例如,我创建了如下文本文件:
red 100
yellow 400
blue 300
green 500
purple 1000
...
颜色和整数由制表符分隔 . 当我创建这个文本文件时,我需要在每行的末尾按Enter键以开始一个新行 . 在这种情况下,按Enter键等于添加换行符,'\ n',是吗?
如果在每行的末尾有一个'\ n'是正确的,我运行fgets代码如下:
fgets(string, 100, fp);
由于每行中包含的字符远小于100,因此fgets应该在达到maxlength限制之前点击换行符,并且它应该停止并返回NULL . 那是对的吗?
如果我上面的理解不正确,每行末尾都没有'\ n',或者fgets没有在每一行的末尾停止,maxlength的数量是多少(即fgets中的N(字符串) ,N,stream)函数)我应该选择以确保由于我的最终目标正确输入文件是解析每一行并将每一行存储到一个结构中 . 顺便说一下,文件中有100行 .
3 回答
样本输出: