文件为空时,仅使用eof。当读取的第一个字符是eof时,我们可以判断文件是否为空#include<stdio。h>#包括<stdlib。h>voidmain(){文件*fpcharchif((fp=fopen(”1。txt“,”r“)==null){printf(”错误!如果(ch==eof)printf(“fileisemptyn”)elseprintf(“fileisnotemptyn”)ch是获得的文件,函数fgetc(fp)将从文件的开头到结尾获取文件的内容。。每次调用此函数时,都会得到文件中的下一个字符,直到文件结束。你的1.txt文件应该和你的程序放在同一个文件夹里
字符串是字符数组。判断它是否为空就是判断第一个元素是否为0
]好的,我来谈谈如果我读了它会发生什么。这是最常见的字符串溢出,它将读回0x00或直接触发内存。幸运的是,这个字符数组后面是空白内存,也就是说,字符串变成“12f”;如果后面没有空白内存,例如int32,它将被读出为1字节,读入4字节,然后读回0x00。当然,有些编译器会将内存初始化为奇怪的东西,然后它们会一直输出奇怪的字符。这就是“烫伤”的由来。