fputs fgets getline

http://baike.baidu.com/link?url=3-JkuJHtb6I1sWhLGxDAlTc9pZCduEZY0xRjcg2dLtwjN9E_2JR3p2p9kAEWL620

函数名: fputs
功 能:向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)。成功写入一个字符串后,文件的位置指针会自动后移,函数返回为一个非负整数;否则返回EOF(符号常量,其值为-1)。
用 法: int fputs(char *str, FILE *fp);
参数: str是字符型指针,可以是字符串常量,或者存放字符串的数组首地址。
fp是文件型指针,通过打开文件函数fopen()获得的。
程序例:( 实现的功能将一字符串写入文件“strfile”)
#include <stdio.h>
main()
{
char str[80]="I/O system."; / *字符串常量存入字符数组*/
FILE *fp;  /*定义文件指针fp*/
if((fp=fopen("strfile","w"))==NULL) /*打开文件写模式*/
{
printf("cannot open the file.\n") /*判断文件是否正常打开*/
exit(0);
}
fputs(str,fp); /*将字符串写入文件*/
fclose(fp); /*关闭文件*/
return ;
}



函数原型:char *fgets(char *buf, int bufsize, FILE *stream);
参数:
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明buf指向的字符数组的大小。
*stream: 文件结构体指针,将要读取的文件流。

例:
如果一个文件的当前位置的文本如下
Love, I Have
Since you can do it.
如果用fgets(str1,6,file1);去读取
则执行后str1 = "Love," ,读取了6-1=5个字符
这个时候再执行fgets(str1,20,file1)则执行后str1 = " I Have\n"
而如果
fgets(str1,23,file1);
则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0'),当前文件位置移至下一行,虽然23大于当前行上字符总和,可是不会继续到下一行。而下一次调用fgets()继续读取的时候是从下一行开始读



ssize_t getline(char **lineptr, size_t *n, FILE *stream);

3返回值

成功:返回读取的字节数。
失败:返回-1。
参数:
lineptr:指向存放该行字符的指针,如果是NULL,则有系统帮助malloc,请在使用完成后free释放。
n:如果是由系统malloc的指针,请填0
stream:文件描述符

int main()
{
   FILE* fp;
   fp = fopen("ftp/user.txt", "r");
   if( NULL == fp )
    {
      perror("");
      exit(EXIT_FAILURE);
    }
   
   char* line=NULL;
   size_t len = 0;
   ssize_t read=0;
   while((read =getline(&line, &len, fp)) != -1)
   {
       printf("%s\n", line);
   }
  
  if(line)
  {
    free(line);
  }


return EXIT_SUCCESS;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值