根据最近学习的一些有关C语言的知识,写出了一个阅读器的程序
话不多说,代码先摆上来
#include <stdio.h>
void pri(void);
int main(void)
{
int nums = 0;
int end = 1;
pri();
while(end)
{
printf("->");
if( scanf("%d",&nums) != 1)
{
scanf("%*s");//接受键盘缓存区的值但是不传地址给后面的参数
nums = 0;
}
if(nums == 1 || nums == 2 || nums == 3 || nums == 4)
{
switch(nums)
{
case 1:
printf(" 中国人民解放军国防科技大学(National University of Defense Technology),"
"是直属中国共产党中央军事委员会领导的军队综合性大学,也一直是国家和军队重点建设的院校。"
"是第一个五年计划国家%d项重点建设工程之一,是中共中央1959年确定的全国%d所重点大学之一,"
"是国务院首批批准有权授予硕士、博士学位的院校,是全国首批试办研究生院的院校,"
"是首批进入国家“211工程”建设计划的院校,是军队唯一进入国家“985工程”建设行列的院校,"
"是纳入国家“双一流”建设支持的院校。\n",156,20);
break;
case 2:
printf(" 湖南大学(Hunan University),简称“湖大”,坐落于长沙市,是教育部直属全国重点大学,"
"教育部、工业和信息化部、湖南省人民政府、国家国防科技工业局共建高校,位列国家“世界一流大学建设高校”、"
"“985工程”、“211工程”,入选国家“2011计划”、“111计划”、卓越法律人才教育培养计划、卓越工程师教育培养计划、"
"国家建设高水平大学公派研究生项目、新工科研究与实践项目、全国深化创新创业教育改革示范高校、"
"全国创新创业典型经验高校、全国高校实践育人创新创业基地、中国政府奖学金来华留学生接收院校、"
"国家大学生创新性实验计划,高校国家知识产权信息服务中心。\n");
break;
case 3:
printf(" 长沙学院(Changsha University),简称“长大”,是经中华人民共和国教育部批准的全日制普通高等本科院校,"
"实行省市共建共管、以长沙市为主管理的体制,属于湖南省“双一流”高水平应用特色学院,入选教育部首批新工科研究与实践项目、"
"湖南省2011计划,是国家“十三五”应用型本科产教融合发展工程规划高校、全国高校实践育人创新创业基地、CDIO工程教育联盟成员单位。\n");
break;
case 4:
end = 0;
printf("退出\n");
default:
break;
}
}
else
{
printf("请重新输入你想去的大学:\n");
}
}
return 0;
}
void pri(void)
{
printf("请输入你想去的大学:\n");
printf("1 国防科技大学\n");
printf("2 湖南大学\n");
printf("3 长沙学院\n");
printf("4 退出\n");
}
之前写了几个版本,但这个是比较合理的。
最开始是直接写了四个输出,然后通过if和switch的嵌套,写了可以按键进入想去的位置,这个时候有个不好的一点就是,输出完之后,必须重新启动程序,这样就显得麻烦,所以我又在外面加了一个while判断,让他能够不退出的继续运行,除非你按了相应的键。可是这样做出来之后,还是有问题,不能够按除了数字之外的键,按了就会不停的循环这一段
void pri(void)
{
printf("请输入你想去的大学:\n");
printf("1 国防科技大学\n");
printf("2 湖南大学\n");
printf("3 长沙学院\n");
printf("4 退出\n");
}
所以需要继续改进,到处去查,希望有能帮助我解决问题的文章
最后在while里面增加了一个这个判断,就成功解决了
if( scanf("%d",&nums) != 1)
{
scanf("%*s");//接受键盘缓存区的值但是不传地址给后面的参数
nums = 0;
}
这只能说是满足了基本需求,我希望后期还能有个升级版,希望大家能多多提一下问题、想法,看能不能做个升级版出来。