C语言高手近来帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:47:04
#include <stdio.h>
main()
{
FILE *fp;
int a[10] = {10,20,30,40,50,90,80,70,60,50};
int i;
fp = fopen( "test.txt", "w" );
for ( i = 0; i < 10; i++ )
fprintf( fp, "%d ", a[i] );
fclose( fp );
fp = fopen( "test.txt", "r" );
for ( i = 0; i < 4; i++ )
fscanf( fp, "%d ", &a[i+3] );
for ( i = 0; i < 3; i++ )
fscanf( fp, "%d ", &a[i+1] );
fclose( fp );
for ( i = 0; i < 6; i++ )
printf( "%d ", a[i] );
}
假设文件操作总是成功的。
输出:?

你要的结果吗? 结果是10, 50 90 80 20 30
用fprintf()函数把a[]数组里的元素输入到文件中,这时FILE指针fp指向文件的文件内的第一个字符也是数组依次写入的元素10,然后用fscanf()函数把文件内的内容输出到a[],每操作依次fp指针移向下一个.所以第二个for循环以后数组的内容变为10,20,30,10,20,30,40,70,60,50
同时文件指针指向移动了4次,下一个for循环 数组为 10,50,80,90,20,30,40,70,60,50
输出数组的前六项就是这个结果了