当前位置:  技术问答>linux和unix

关键字:UNIX C FILE 标准IO

    来源: 互联网  发布时间:2015-04-13

    本文导语:  环境: UNIX C 问题: 如下CODE能从A.LOG读出第一行并写入B.txt,现在我想逐行读出写入应该怎么办? #include  #include  int main(int argc,char **argv) { FILE *p_f1,*p_f2; char buf[100]; p_f1=fopen("./A.LOG","r"); p_f2=fopen("./B.txt","w"); fgets(bu...

环境:
UNIX C
问题:
如下CODE能从A.LOG读出第一行并写入B.txt,现在我想逐行读出写入应该怎么办?
#include 
#include 

int
main(int argc,char **argv)
{
FILE *p_f1,*p_f2;
char buf[100];
p_f1=fopen("./A.LOG","r");
p_f2=fopen("./B.txt","w");
fgets(buf,100,p_f1);
fputs(buf,p_f2);
fclose(p_f2);
fclose(p_f1);
}


|
int fseek(FILE *stream,long offset,int whence); 
在流上重新定位文件结构的位置。fseek设置与流stream相联系的文件指针到新的位置,新位置与whence给定的文件位置的距离为offset字节。
whence的取值必须是0,1或2中的一个,分别代表在stdio.h中定义的三个符号常量:
0是SEEK_SET,是文件开始位置;
1是SEEK_CUR,是当前的指针位置;
2时SEEK_END,是文件末尾。
调用了fseek之后,在更新的文件位置上,下一个操作可以是输入;也可以是输出。成功地移动了指针时,fseek返回0;出错或失败时返回非0值。

long int ftell(FILE *stream);
返回流stream中当前文件指针位置。偏移量是文件开始算起的字节数。出错时返回-1L,是长整数的-1值。 

#include 
#include 

int main(int argc,char **argv){
   FILE *p_f1,*p_f2;
   static long pos;
   int rc=0;
   char buf[100];

   p_f1=fopen("./A.LOG","r");
   if(p_f1==NULL)
   {
      printf("can't open f1");
      return -1;
   }
   p_f2=fopen("./B.txt","w");
   if(p_f2==NULL)
   { printf("can't open f2");
     return -3;
   }

  if(fseek(p_f1, pos, SEEK_SET)!=0){//置文件指针于文件首
    printf("fseek error!");
     return -2;
  }
   while (fgets(buf,100,p_f1)!=NULL)
   {
fputs(buf,p_f2);
pos = ftell(p_f1);     //获得当前指针距文件首的偏移量 
         fseek(p_f1, pos, SEEK_SET);//置当前指针
    }

    fclose(p_f2);
    fclose(p_f1);
    return 0;
}

|
fgets():若成功则返回buf,若已处于文件尾端或出错则为NULL。
这两句就是没到p_f1的文件末尾就将读出的内容写入p_f2。

|
Sorry, a mistake.
可以用fseek()和 ftell()来实现.
FILE *p_f1,*p_f2;
static long pos;
char buf[100];

p_f1=fopen("./A.LOG","r");
p_f2=fopen("./B.txt","w");
fseek (p_f1, pos, SEEK_SET);
while (fgets(buf,100,p_f1))
{
fputs(buf,p_f2);
pos = ftell (p_f1);
         fseek (p_f1, pos, SEEK_SET);
}
fclose(p_f2);
fclose(p_f1);

    
 
 

您可能感兴趣的文章:

  • linux下grep命令实现查找多个关键字(与关系和或关系)
  • c#中this关键字与base关键字使用方法
  • c++模板(template)中的class和typename关键字异同比较
  • c#访问this关键字和base关键字示例
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • java 中的static关键字和final关键字的不同之处
  • this关键字如何使用?
  • transient 关键字有什么用途
  • 在下面这段代码中,如果对init方法只加synchronized关键字,则不能达到互斥的目的,还要再加上static关键字才能互斥,为什么?
  • 如何在压缩文件下搜索关键字。求命令
  • Linux字符模式下,有没有支持源码关键字的软件?
  • const是关键字?怎么用?
  • 到底true和false 是不是关键字?
  • shell下面如何获取某个关键字后面的6位字符?
  • 如果忘了某个系统调用函数,比如只记得函数名的几个关键字,如何查?
  • jsp中插入有主关键字的数据库的sql语句如何写???
  • vi中编写c程序,如何让关键字显示不同颜色
  • 用emacs 编c/c++怎样让关键字显示不同的颜色
  • 关于gcc关键字
  • 怎么用grep在文件中查找包含两个关键字其中任一个的行?
  • 模块编程中程序不识别_func_关键字
  • 简单问题:Unix下使用extern关键字的标准C程序如何编译?比如...
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 代码文件中查找关键字
  • linux中 写shell程序,用于统计文件中关键字的个数
  • sed找到关键字所在行并将其前面的第一个字符删除的命令
  • vim 单个关键字缩进规则更改
  • 怎样在vi 中,让关键字以特定的颜色突出出来?
  • gvim怎么增加关键字?
  • 请教finally关键字的用法
  • 如何在C语言的宏中使用类型关键字
  • C#中fixed关键字的作用总结
  • destoon实现调用热门关键字的方法
  • MySQL单表多关键字模糊查询的实现方法
  • java之super关键字用法实例解析
  • 我下载的sdk1.4文档如何查找一些关键字呀,一搜索就会上线
  • 寻找一种较为方便的java代码文本编辑器(比如带有语法及关键字变色功能)?
  • 查找oracle数据库表中是否存在系统关键字的方法
  • 如何根据关键字查找某个目录下的所有文件
  • c++关键字mutable深入解析
  • Oracle AS关键字 提示错误
  • instanceof关键字的作用是什么?
  • strictfp是什么关键字?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3