菜鸟又来提问啦!
请问为什么这个程序将123写进文件后变成一个整体的整数123了呢,是和换行符\n有关吗?不输换行符就当做一个整体吗?还是怎样?不懂诶,求详解!
void main( )
{
FILE *fp;
int k, n, a[6]={1,2,3,4,5,6};
fp = fopen("d2.dat", "w");
fprintf(fp, "%d%d%d\n", a[0],a[1],a[2]);
fprintf(fp, "%d%d%d\n", a[3],a[4],a[5]);
fclose(fp); fp = fopen("d2.dat", "r");
fscanf(fp, "%d%d", &k, &n);
printf("%d, %d\n", k, n);
fclose(fp);
}
这里的文件操作把所有的内容当成字符流处理,不管你程序里面怎么操作的,最后你用记事本打开这个文件看到的都是"123" ,程序用这个文件读入的时候既可以把他看成一个数字123 也可以看成3个字符'1'、'2'、'3'。
建议文件操作只用最基本的读写两个函数,即那两个只能按照字节方式的底层函数来处理,然后进行转换,否则经常是一头雾水
fcanf遇到空格和换行才会结束,你用%d的,所以就会一直整数直到读到123遇到换行终止。