1.
int main()
{
FILE *fp,*fq;
char a[100],*s;
if((fp=fopen("d:\\file1.txt","r"))==NULL)
{printf("can not open file!\n");exit(0);}
if((fq=fopen("d:\\file2.txt","w"))==NULL)
{printf("can not open file!\n");exit(0);}
fgets(a,10,fp);
s=strupr(a);/*库函数 strupr返回的是一个指针,将读取的字符窜转换成大写字母窜,不懂可以查阅课本*/
fputs(s,fq);
fclose(fp);
fclose(fq);
}
2.改成了俩个学生,学号+姓名。
#include <stdio.h>
#include <stdlib.h>
typedef struct student {
int ID; // 学号
char name[20]; // 姓名
} Stu;
int main()
{
FILE*fp;
Stu stu[2];
printf("请输入2个同学的信息:学生号,姓名:\n");
for(int i = 0; i < 2; i++) {
scanf("%d %s", &(stu[i].ID), stu[i].name);
}
if ((fp=fopen("stud.txt", "w")) == NULL) {
printf("文件打开失败\n");
exit(0);
}
for(int i=0;i<2;i++) {
fprintf(fp, "%d %s\n", stu[i].ID, stu[i].name);
}
fclose(fp);
return 0;
}
#include<stdio.h>
int main()
{ FILE *p;
int i,w;
char *s="we45*&y3r#$1";
p=fopen("design.dat.txt","w");
for (i=0;s[i]!=' ';i++)
{ w=(i+1)*s[i];
fprintf( p,"%d ",w);
}
fclose(p);
}
#include <stdio.h>
#include <stdlib.h>
#define M 5
typedef struct student {
int num;
char name[20];
float s1;
float s2;
float s3;
float avg;
}stu;
void Print(stu st[]);
void Sort(stu st[]);
int main(){
stu st[M];
FILE *fp;
int i;
printf("请输入学生信息:\n");
for(i=0;i<M;i++){
scanf("%d%s%f%f%f",&st[i].num,st[i].name ,&st[i].s1,&st[i].s2,&st[i].s3 );
st[i].avg =(st[i].s1+st[i].s2+st[i].s3 )/3;
}
if((fp=fopen("stud","wb"))==NULL){
printf("打开文件失败!\n");
}
for(i=0;i<M;i++){
if(fwrite(&st[i],sizeof(stu),1,fp)!=1){
printf("文件写入失败!\n");
}
}
fclose(fp);//关闭文件夹,保存数据
fp=fopen("stud","rb");
for(i=0;i<M;i++){
if(fread(&st[i],sizeof(stu),1,fp)!=1){
printf("文件读出失败!\n");
}
}
Sort(st);
printf("排序后的成绩\n");
Print(st);
fclose(fp);
fp=fopen("stu.sort","wb");
for(i=0;i<M;i++){
if(fwrite(&st[i],sizeof(stu),1,fp)!=1){
printf("文件写入失败!\n");
}
}
fclose(fp);//关闭文件夹,保存数据
fp=fopen("stu.sort","rb");
for(i=0;i<M;i++){
if(fread(&st[i],sizeof(stu),1,fp)!=1){
printf("文件读出失败!\n");
}
}
fclose(fp);
return 0;
}
void Print(stu st[]){
printf("num\t name\t score1\t score2\t score3\t average\n");
int i;
for(i=0;i<M;i++){
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t\n",st[i].num,st[i].name,st[i].s1,st[i].s2,st[i].s3,st[i].avg );
}
}
void Sort(stu st[]){
int i,j,flag;
stu temp;
for(i=0;i<M-1;i++){//第0次,第1次,第2次,第3次
flag=0;
//进行一轮排序,冒泡出一轮中最大的数,从第1个数取到M-1-i个数
for(j=0;j<M-1-i;j++){
if(st[j].avg<st[j+1].avg){
flag=1;
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
if(!flag) break;
// printf("%d轮排序结果",i+1);
// Print(st);
}
}
|