#include <stdio.h>
int main()
{
char a[5];
char b[5];
FILE *fd1 = fopen("./test10.conf","r");
fread(a,1,5,fd1);
FILE *fd2 = fopen("./test10a.conf","r");
fread(b,1,5,fd2);
// a[4]=0;
// b[4]=0;
if( !strcmp((char *)a,(char *)b) )
printf("a==b\n");
else
printf("a!=b\n");
int main()
{
char a[5];
char b[5];
FILE *fd1 = fopen("./test10.conf","r");
fread(a,1,5,fd1);
FILE *fd2 = fopen("./test10a.conf","r");
fread(b,1,5,fd2);
// a[4]=0;
// b[4]=0;
if( !strcmp((char *)a,(char *)b) )
printf("a==b\n");
else
printf("a!=b\n");
}
注: strcmp 遇到不同的字符和\0 才比较结束。
假如test10.conf 和 test10a.conf 的内容都为abcdefg
那么以上程序的打印结果是 a!=b 因为a b 数组里面全是abcde却没有结束符\0 会继续比较,然后就越界了
打开注释的两行,就是手动加结束符。如果两个文件的内容为abc则正常,因为文件末尾自动加\0