首页
学习
活动
专区
圈层
工具
发布

feof用法重点详解(易被误用判断文件结束!!!)

feof的误用: feof 用于判断文件指针是否指向文件末尾 当指向文件尾,返回1;否则返回0; (可用于判断二进制文件/文本文件读取结束以后真实的结束情况 ) 在文件读取过程中,不能用feof...函数的返回值直接用来判断文件的是否结束!!!...feof(fp))来一直读取文件直到文件结束 feof的正确使用场景:feof应当用于,在文件读取已经结束的时候,判断是读取失败导致的结束还是遇到文件尾正常的结束(与ferror搭配) 判断文件读取是否结束...: 对于文本文件: fgetc判断返回值是否为EOF fgets判断返回值是否为NULL 对于二进制文件: fread判断返回值是否小于实际要读的个数 参考资料:其中的例子也说明了feof

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    文件结束符EOF

    当用getchar进行输入时,如果输入的第一个字符为有效字符(即输入不是文件结束符EOF,Windows下为组合键Ctrl+Z,Unix/Linux下为组合键Ctrl+D),那么只有当最后一个输入字符为换行符...因为getchar函数除了返回终端输入的字符外,在遇到Ctrl+D(Linux下)即文件结束符EOF时,getchar()的返回EOF,这个EOF在函数库里一般定义为-1。...到目前为止, 把 c 定义为 char仍然是可行的, 但下面我们将看到,把 c 定义为 int 是为正确判段文件是否结束.(2) 判断文件结束 多数人认为文件中有一个EOF,用于表示文件的结尾....FILE *fp; fp 指向一个很复杂的数据结构, feof 是通过这个结构中的标志来判断文件是否结束的....这时我们 需要 feof 和 ferror.总结:EOF并不是存在于文件中的,而是一种状态,当读到文件末尾或者读取出错时就会返回这个值来判断文件结束。

    5.8K10

    Roslyn 在项目文件使用条件判断 判断不相等判断大小判断文件存在判断多个条件使用的范围

    本文告诉大家如何在项目文件通过不同的条件使用不同的方法运行 本文是 手把手教你写 Roslyn 修改编译 的文章,在阅读本文之前,希望已经知道了大多数关于 msbuild 的知识 为了告诉大家如何使用判断...判断大小 除了判断字符串,还可以判断字符串的大小,只能用来判断数值字符串,如果对于 16 进制的字符串,需要使用 0x 开始,如下面代码 error MSB4086: 尝试在条件“'AA '>'10'”中对计算结果为“AA”而不是数字的“AA”进行数值比较 判断文件存在...在条件判可以用 Exists 判断文件 文件夹是否存在 还可以写在 Import 一般在 Import 都需要先判断是否存在文件

    4.2K10

    shell逻辑判断、文件属性判断、if特殊用法、case判断

    echo "a>6" else echo "Out of the zone" fi 关系 各个条件之间的关系可以使用逻辑连接符: 条件A&&条件B:并且 条件A||条件B:或者 20.6 文件目录属性判断...shell脚本中if经常用于判断文档的属性,比如判断是普通文件还是目录文件,判断文件是否有读、写、执行权限等。...if常用的选项有以下几个: -e:判断文件或目录是否存在 -d:判断是不是目录文件以及是否存在 -f:判断是不是普通文件以及是否存在 -r:判断是否有读权限 -w:判断是否有写权限 -x:判断是否有执行权限...[root@localhost sbin]# sh if.sh wc: /tmp/test.txt: 没有那个文件或目录 error 即,当该文件不存在的时候就会退出执行,不会提示存在语法错误。...判断某参数不存在时使用!表示取反。

    2.5K20

    linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断

    注意到处都是空格 可以使用 && || 结合多个条件 if [ $a -gt 5 ] && [ $a -lt 10 ]; then if [ $b -gt 5 ] || [ $b -lt 3 ]; then 文件目录属性判断...[ -f file ]判断是否是普通文件,且存在。...-f file ]判断如果不是普通文件且不存在 [ -d file ] 判断是否是目录,且存在 [ -e file ] 判断文件或目录是否存在 [ -r file ] 判断文件是否可读 [ -w file...] 判断文件是否可写 [ -x file ] 判断文件是否可执行 if特殊用法 if [ -z “$a” ] 这个表示当变量a的值为空时会怎么样 if [ -n “$a” ] 表示当变量a的值不为空...-e file ]; then 表示文件不存在时会怎么样 if ((a<1));then…等同于if[a<1)); then …等同于 if [ a -lt 1 ]; then… [ ] 中不能使用<

    1.8K60

    linux shell:判断git工作文件夹是否干净(clean)

    git diff就可以判断git工作文件夹是否干净,如果是干净的,git diff将没有输出,否则输出修改的文件的差异 #!.../bin/bash if [[ -n $(git diff --stat) ]] then echo 'dirty' else echo 'clean' fi 如果觉得判断字符串是否为空的[[...]]条件判断语句写得太麻烦,配合 --quiet 选项还可以更简单使程序的返回代码(EXIT CODE)来判断 git diff --quiet || echo 'dirty' 但是,前面第一句话就说了...,git diff只是比较已经纳入版本控制的文件被修改的差异,如果git工作文件夹有新加入的文件,git diff是不关注的,这种情况下,git diff依然会认为文件夹是干净的(clean). git...所以我们可以使用类似下面这样的表达式来判断git 文件夹是否干净。 $ [[ -z $(git status -s) ]] || echo 'modified/untracked'

    4K50
    领券