#include
int main(int argc,char **argv[])
{
FILE *fd=NULL;
fd=fopen("$1","r");
if(NULL==fd)
{
perror("open error");
return -1;
}
fclose(fd);
return 0;
}
#include
int main(int argc,char *argv[])
{
FILE *fd=NULL;
fd=fopen(argv[1],"r");
char ch;
if(NULL==fd)
{
perror("open error\n");
return -1;
}
while(-1!=(ch=fgetc(fd)))
{
fputc(ch,stdout);
}
fclose(fd);
return 0;
}
/*
* 全缓存
*/
#include
#include
int main(void)
{
while(1)
{
printf("hello");
usleep(3000);
}
return 0;
}
/*
* 行缓存
*/
#include
int main()
{
printf("hello world\n");
}
/*
* 行缓存
*/
#include
int main()
{
printf("hello");
while(1);
return 0;
}
/*
行缓存
*/
#include
int main()
{
printf("hello");
fflush(stdout);
while(1);
return 0;
}
#include
int main(int argc,char *argv[])
{
FILE *fd=NULL;
fd=fopen(argv[1],"r");
char ch;
if(NULL==fd)
{
perror("open error\n");
return -1;
}
while(-1!=(ch=fgetc(fd)))
{
fputc(ch,stdout);
}
fclose(fd);
return 0;
}
/*
* 功能:用fseek函数计算文件的大小
* 作者:徐子宸
* 来源:借鉴书上11页例程
*/
#include
int main(int argc,char *argv[])
{
FILE *p;
if((p=fopen(argv[1],"r"))==NULL)
{
perror("找不到文件");
return -1;
}
fseek(p,0,SEEK_END);
printf("%s文件的大小为%ld\n",argv[1],ftell(p));
return 0;
}
#include
int main(int argc,char *argv[])
{
FILE *fd=NULL;
fd=fopen(argv[1],"r");
char ch;
if(NULL==fd)
{
perror("open error\n");
return -1;
}
while(-1!=(ch=fgetc(fd)))
{
fputc(ch,stdout);
}
fclose(fd);
return 0;
}
#ifndef _MAIN_H_
#define _MAIN_H_
#include
#include
#include
typedef struct student
{
char name[12];
int age;
float scores[3];
}stu;
void swap(stu *ps,stu *pb);
float sumscores(float b[]);
void input(stu *ps);
void output(stu *ps);
stu *calpmaxage(stu *ps);
stu *upload(stu *ps,FILE *upload);
void sortbyage(stu *ps);
void sortbyname(stu *ps);
void sortbysumscores(stu *ps);
#endif
#include"../include/main.h"
stu *calpmaxage(stu *ps)
{
stu *pmax=NULL;
pmax=ps;
for(int i=0;i<2;i++)
{
if(pmax->age<(ps+i)->age)
{
pmax=(ps+i);
}
}
return pmax;
}
/*
思路分析:
i={0,1}
age={28,58}
ps=28
pmax=ps=28
ps+0=28
ps+1=58
28<58
pmax=58
分析完毕
*/
#include "../include/main.h"
void input(stu *ps)
{
for(int i=0;i<2;i++)
{
printf("请输入学生的姓名,年龄以及三门成绩:\n");
scanf("%s",&ps->name[0]); // &name[0]=name
scanf("%d",&ps->age);
for(int j=0;j<3;j++)
{
scanf("%f",&ps->scores[j]);
}
ps++;
}
}
#include"../include/main.h"
int main(void)
{
stu *pmax=NULL;
stu *ps=NULL;
ps=(stu*)malloc(sizeof(stu)*2);
if(NULL==ps)
{
perror("malloc error");
return -1;
}
memset(ps,0,sizeof(stu)*2);
int op;
while(1)
{
printf("1 Input\n");
printf("2 Output\n");
printf("3 Calpmaxage\n");
printf("4 Sortbyage\n");
printf("5 Sortbyname\n");
printf("6 Sortbysumscores\n");
printf("7 upload\n");
printf("8 Exit\n");
//int op;
//scanf("%d",&op);
scanf("%d",&op);
switch(op)
{
case 1:
input(ps);
break;
case 2:
output(ps);
break;
case 3:
pmax=calpmaxage(ps);
printf("年龄最大的人是%s\n",pmax->name);
printf("年龄最大的人的首地址为%p\n",pmax);
break;
case 4:
sortbyage(ps);
break;
case 5:
sortbyname(ps);
break;
case 6:
sortbysumscores(ps);
break;
case 7:
upload(ps,upload);
printf("上传成功,可以下载\n");
break;
case 8:
exit(0);
break;
}
}
free(ps); // 释放内存空间
ps=NULL;
return 0;
}
#include"../include/main.h"
void output(stu *ps)
{
for(int i=0;i<2;i++)
{
printf("%s ",ps->name);
printf("%d ",ps->age);
for(int j=0;j<3;j++)
{
printf("%.1f ",ps->scores[j]);
}
printf("\n");
ps++;
}
}
#include"../include/main.h"
void sortbyage(stu *ps)
{
for(int i=0;i<2;i++)
{
for(int j=0;j<2-1-i;j++)
{
if(strcmp((ps+j)->name,(ps+j+1)->name)>0)
{
swap((ps+j),(ps+j+1));
}
}
}
}
/*
(ps+j)->name指代第一个姓名
(ps+j+1)->name指代第二个姓名
如果第一个姓名的ASSCII码值大于第二个姓名的ASCII码值
则进行交换
采用冒泡排序
*/
/*
(ps+j)->name指代上一个姓名
(ps+j+1)->name指代下一个姓名
如果上一个姓名的ASCII码值大于下一个姓名的ASCII码值
则将姓名交换
使用冒泡排序
*/
#include"../include/main.h"
void sortbyname(stu *ps)
{
for(int i=0;i<2-1;i++)
{
for(int j=0;j<2-1-i;j++)
{
if(strcmp((ps+j)->name,(ps+j+1)->name)>0)
{
swap((ps+j),(ps+j+1));
}
}
}
}
#include"../include/main.h"
void sortbysumscores(stu *ps)
{
for(int i=0;i<2-1;i++)
{
for(int j=0;j<2-1-i;j++)
{
if(sumscores((ps+j)->scores)>sumscores((ps+j+1)->scores))
{
swap((ps+j),(ps+j+1));
}
}
}
}
/*
(ps+j)->scores指代上一门成绩
(ps+j+1)->scores指代下一门成绩
如果上一门成绩大于下一门成绩
则进行交换
采用冒泡排序
*/
#include"../include/main.h"
float sumscores(float b[])
{
float sum=0;
for(int i=0;i<2;i++)
{
sum=sum+b[i];
}
return sum;
}
#include"../include/main.h"
void swap(stu *pa,stu *pb)
{
stu temp={0};
temp=*pa;
*pa=*pb;
*pb=temp;
}
/*
* 作者:徐子宸
* 来源:自己
* 功能:实现学生成绩信息的上传
* 问题:语法错误
* 日期:2022年11月17日
*
*/
#include"../include/main.h"
stu *upload(stu *ps,FILE *upload)
{
FILE *upload=fopen("info.txt","w");
ps=upload;
if(NULL==upload)
{
perror("文件未找到");
return -1;
}
fwrite(&stu,1,sizeof(stu),upload);
fclose(upload);
}
OBJ:=object
CC:=gcc
CFLAGS:=-c
OBJS:=calpmaxage.o main.o sortbyage.o sortbysumscores.o swap.o input.o output.o sortbyname.o sumscores.o upload.o
export OBJ CC CFLAGS OBJS
ALL:
make -C src
make -C obj
.PHONY:clean
clean:
$(RM) obj/*.o
$(RM) bin/*
ALL:$(OBJ)
mv $< ../bin
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $@
ALL:$(OBJS)
mv $^ ../obj
main.o:main.c
$(CC) $(CFLAGS) $< -o $@
calpmaxage.o:calpmaxage.c
$(CC) $(CFLAGS) $< -o $@
sortbyage.o:sortbyage.c
$(CC) $(CFLAGS) $< -o $@
sortbysumscores.o:sortbysumscores.c
$(CC) $(CFLAGS) $< -o $@
swap.o:swap.c
$(CC) $(CFLAGS) $< -o $@
input.o:input.c
$(CC) $(CFLAGS) $< -o $@
output.o:output.c
$(CC) $(CFLAGS) $< -o $@
sortbyname.o:sortbyname.c
$(CC) $(CFLAGS) $< -o $@
sumscores.o:sumscores.c
$(CC) $(CFLAGS) $< -o $@
upload.o:upload.c
$(CC) $(CFLAGS) $< -o $@
日期:2022年11月28日-2022年12月2日
作者:徐子宸