西北农林科技大学c语言上机实习8答案
1. 文本文件中字符个数统计
#include
#include
int main(void)
{
char ch, filename[200];
int count = 0;
FILE *fp;
scanf("%s", filename);
if((fp = fopen(filename, "r")) == NULL)
{
printf("File open error!\n");
exit(1);
}
while((ch = fgetc(fp)) != EOF)
{
count++;
}
printf("%d\n",count);
if( fclose(fp))
{
printf("File close error!\n");
exit(1);
}
return 0;
}
2. 文件中数据的排序
#include
#include
int main(void)
{
int a[10], temp = 0, i = 0, j = 0, k = 0;
char filename1[80], filename2[80];
FILE *fp1,*fp2;
scanf("%s", filename1);
scanf("%s", filename2);
if((fp1 = fopen(filename1, "rb")) == NULL)
{
printf("Input file open error!\n");
exit(1);
}
if((fp2 = fopen(filename2,"wb")) == NULL)
{
printf("Output file create error!\n");
exit(1);
}
for(i = 0; i < 10; i++)
{
fread(&a[i], sizeof(int), 1, fp1); /* 读出数据 */
}
for(i = 0; i < 9; i++) /* 排序 */
{
k = i;
for(j = i + 1; j < 10; j++)
if(a[k] > a[j]) k = j;
if(k != i)
{
temp = a[k];
a[k] = a[i];
a[i] = temp;
}
}
for(i = 0; i < 10; i++) /* 写入数据 */
{
fwrite(&a[i], sizeof(int), 1, fp2);
}
if( fclose(fp1))
{
printf("Input file close error!\n");
exit(1);
}
if( fclose(fp2))
{
printf("Output file close error!\n");
exit(1);
}
/*验证结果的代码,请不要改动*/
if((fp1 = fopen(filename2, "rb")) == NULL)
{
printf("Result file open error!\n");
exit(1);
}
for(i = 0; i < 10; i++)
{
fread(&a[i], sizeof(int), 1, fp1); /* 读出数据 */
}
if( fclose(fp1))
{
printf("Result file close error!\n");
exit(1);
}
for(i = 0; i < 9; i++)
printf("%d ",