第十六周项目一 a阅读程序(1)

/*copyright(c)2016.烟台大学计算机学院
 * All rights reserved,
 * 文件名称:text.Cpp
 * 作者:舒文超
 * 完成日期:2016年6月4日
 * 版本号:vc++6.0
 * 问题描述:阅读下面程序,并写出运行结果。
 */
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    fstream outfile,infile;
    outfile.open("data.dat",ios::out);
    outfile<<"1111111111"<<endl;
    outfile<<"aaaaaaaaaa"<<endl;
    outfile<<"AAAAAAAAAA"<<endl;
    outfile<<"**********"<<endl;
    outfile.close();
    infile.open("data.dat",ios::in);
    char line[80];
    int i=0;
    while(!infile.eof())
    {
        i++;
        infile.getline(line,sizeof(line));
        cout<<i<<": "<<line<<endl;
    }
    infile.close();
    return 0;
}

运行结果:

解释:前四行就是从文件中读取,在最后一行的时候,要输出一个结束符,所以什么也没看到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一份基于51单片机的实时时钟显示年月日时分秒的C++程序: ```c++ #include <reg51.h> #include <intrins.h> //包含_nop_()函数,用于延时 #define uchar unsigned char #define uint unsigned int uchar code wday[] = {"Sun Mon Tue Wed Thu Fri Sat"}; //星期数组 uchar code mon_table[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //月份天数 uchar year = 2021; //初始年份为2021年 uchar month = 1; //初始月份为1月 uchar day = 1; //初始日期为1日 uchar hour = 0; //初始小时为0时 uchar minute = 0; //初始分钟为0分 uchar second = 0; //初始秒钟为0秒 void delay(uint i) { while(i--); } void write_com(uchar com) { P0 = com; RS = 0; RW = 0; EN = 1; delay(1); EN = 0; } void write_data(uchar dat) { P0 = dat; RS = 1; RW = 0; EN = 1; delay(1); EN = 0; } void init() { write_com(0x38); //16*2显示,5*7点阵,8位数据 write_com(0x0c); //开显示不显示光标 write_com(0x06); //字符不动,地址自动加1 write_com(0x01); //清屏 } void init_time() //初始化时钟 { uchar i; for(i=0;i<20;i++) //20次循环,每次循环1s,共20s { write_com(0x80); //地址指向第一行第一个字符 write_data('T'); write_data('i'); write_data('m'); write_data('e'); write_com(0x8f); //地址指向第二行最后一个字符 write_data(i/10+0x30); //取十位数 write_data(i%10+0x30); //取个位数 delay(1000); //延时1s } } void init_ds1302() //初始化DS1302时钟芯片 { uchar i; CE = 0; CLK = 0; DSIO = 0; CLK = 1; for(i=0;i<8;i++) { CLK = 0; _nop_(); _nop_(); CLK = 1; } } void write_ds1302_byte(uchar dat) //向DS1302写入一个字节 { uchar i; for(i=0;i<8;i++) { DSIO = dat & 0x01; dat >>= 1; CLK = 0; _nop_(); _nop_(); CLK = 1; } } void write_ds1302(uchar addr,uchar dat) //向DS1302写入一个寄存器 { CE = 0; CLK = 0; CE = 1; _nop_(); write_ds1302_byte(addr); write_ds1302_byte(dat); CE = 0; } uchar read_ds1302(uchar addr) //从DS1302读取一个寄存器 { uchar i,dat = 0; CE = 0; CLK = 0; CE = 1; _nop_(); write_ds1302_byte(addr|0x01); for(i=0;i<8;i++) { dat >>= 1; if(DSIO) { dat |= 0x80; } CLK = 0; _nop_(); _nop_(); CLK = 1; } CE = 0; return dat; } void set_time() //设置时间 { uchar temp; year = 2021; //初始年份为2021年 month = 1; //初始月份为1月 day = 1; //初始日期为1日 hour = 0; //初始小时为0时 minute = 0; //初始分钟为0分 second = 0; //初始秒钟为0秒 write_ds1302(0x8e,0x00); //禁止写保护 write_ds1302(0x80,0x00); //关闭时钟计数 write_ds1302(0x8e,0x80); //使能写保护 write_ds1302(0x8e,0x00); //禁止写保护 write_ds1302(0x80,0x80); //打开时钟计数 write_ds1302(0x8e,0x80); //使能写保护 } void get_time() //获取时间 { uchar temp; year = read_ds1302(0x8d); //读取年份 month = read_ds1302(0x89); //读取月份 day = read_ds1302(0x87); //读取日期 hour = read_ds1302(0x85); //读取小时 minute = read_ds1302(0x83); //读取分钟 second = read_ds1302(0x81); //读取秒钟 temp = read_ds1302(0x86); //读取星期 write_com(0xcf); write_data(wday[temp*4]); write_data(wday[temp*4+1]); write_data(wday[temp*4+2]); write_data(wday[temp*4+3]); } void display_time() //显示时间 { write_com(0x80); //地址指向第一行第一个字符 write_data(year/1000+0x30); //取千位数 write_data(year%1000/100+0x30); //取百位数 write_data(year%100/10+0x30); //取十位数 write_data(year%10+0x30); //取个位数 write_data('/'); write_data(month/10+0x30); //取十位数 write_data(month%10+0x30); //取个位数 write_data('/'); write_data(day/10+0x30); //取十位数 write_data(day%10+0x30); //取个位数 write_data(' '); write_data(' '); write_data(' '); write_com(0x87); //地址指向第二行第八个字符 write_data(hour/10+0x30); //取十位数 write_data(hour%10+0x30); //取个位数 write_data(':'); write_data(minute/10+0x30); //取十位数 write_data(minute%10+0x30); //取个位数 write_data(':'); write_data(second/10+0x30); //取十位数 write_data(second%10+0x30); //取个位数 } void main() { init(); //初始化LCD init_time(); //显示欢迎信息 init_ds1302(); //初始化DS1302时钟芯片 set_time(); //设置时间 while(1) { get_time(); //获取时间 display_time(); //显示时间 delay(1000); //延时1s } } ``` 需要注意的是,这份程序中使用了DS1302时钟芯片,需要先将其接好并初始化。同时,需要连接LCD显示屏,并在程序中正确设置引脚。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值