谁帮忙帮我把这个问题解决下,我糊涂了
好吧,我发现,我越来越被这两个小东西弄混了下面的代码,是将文件中的十个字符串排序,然后再重新把这十个字符串写进文件中
代码没错,只是有几个地方弄不清楚了,哪位真正了解这个的高手,麻烦解释下,如果你不能确保你说的是对的,你麻烦先沉默下,我怕我被搞得更混了
两个问题,被我用注释的形式给出来了。麻烦帮忙指点下。谢谢
#include<stdio.h>
#include<string.h>
int main()
{
char *buff[10];
FILE *fp;
int i = 0, j;
char *temp;
char str[10][10]; //这一步,为什么不能写成char *str[10];
if( ( fp = fopen( "file.txt", "r+" ) ) == NULL )
{
printf( "file could not be opened\n" );
exit( 1 );
}
while( !feof( fp ) )
{
fscanf( fp, "%10s", str[ i ] );
buff[i] = str[ i++ ]; //我为什么不能把这两步骤合起来啊?fscanf( fp, "%10s", buff[i++] );
}
for( i = 0; i < 9; i++ )
for( j = i + 1; j < 10; j++ )
if( strcmp( buff[i], buff[j] ) < 0 )
{
temp = buff[i];
buff[i] = buff[j];
buff[j] = temp;
} //排序完毕
rewind( fp );
for( i = 0; i < 10; i++ )
{
fprintf( fp, "%-10s", buff[i] );
}
fclose( fp );
return 0;
}