7.27

苏嵌                                                                                                                              项目实战

学习日志                                     姓名:张继钰       日期:7.27

 

 

 

 

今日学习任务

 

  1. 关于文件的操作

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

今日任务已基本完成任务

今日开发中出现的问题汇总

 

 

今日未解决问题

 

今日开发收获

学习了关于open/read/write/create/lseek等函数的使用

 

自我评价

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 

今天的学习收获还是挺大的,在linux下对文件进行逐行读以及逐行写都已经有所涉及。

其他

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#include
#include
#include

#include
#include
#include
#include

int read_line(int fp,char *buf,int max_len)
{
    int i;
    int n;
    char temp;
    
    for(i = 0; i < max_len;i++)
    {
        n =  read(fp,&temp,1);
        
    if(n == -1)
    {
        perror("read line error!");
        return -1;
    }
    if(n == 0)
    {
        buf[i] = '\0';
        return 0;
    }
        
    if(temp == '\n')
        {
            break;
        }
    buf[i] = temp;
    }
    buf[i] = '\0';
    return i + 1;
}
int main()
{
    int fp = open("a.txt",O_RDWR | O_CREAT,0655);

    if(fp == -1)
    {
        perror("open file error");
    exit(1);
    }
    char buf[100];// = "hello world\n";

//    int n = write(fp,buf,strlen(buf));

//    printf("write = %d\n",n);
/*    int i;
    for(i = 0; i < 3; i++)
    {
        printf("Please input data\n");
    memset(buf , 0 , sizeof(buf));
    gets(buf);
    write(fp,buf,strlen(buf));
    write(fp,"\n",1);
    }
*/
    lseek(fp,0,SEEK_SET);
    int ret;
    int i = 0;

    while((ret = read_line(fp,buf,sizeof(buf)) > 0))
    {
        printf("第%d个 %s\n",i + 1,buf);
    i++;
    memset(buf,0,sizeof(buf));
    }

//    memset(buf, 0 ,sizeof(buf));

//    int m = read(fp,buf,sizeof(buf));

//    printf("read = %d\n",m);

//    printf("buf = %s",buf);

    return 0;

}

你可能感兴趣的:(7.27)