A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ldk1991125 中级黑马   /  2016-6-29 21:18  /  811 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

fgets(),fputs()函数使用
1.fgets()函数的使用
  该函数是一个文件操作相关的函数,暂时使用这个函数可以从键盘接收一个字符串,保存到数组中。
  scanf("%s",str);  //缺点:不能接收空格
  gets(str);  //可以接收空格,但会有一个警告,不安全
  fgets()是一个安全的字符串接收函数。例如:
  char ch[5];  //如果我们使用fgets接收字符串数组中最多存放四个可见字符,最后一位存放'\0';当输入的字符串长度>数组的长度,此时gets会自动把数组的最后一个元素变成\0。当输入的字符串<数组的长度时,fgets会接收回车
  fgets()的原型是
  char*fgets(char*s,int n,FILE*fp);
  参数的数量比较多,有三个。而fgets相比于gets有一个显著的差别就是fgets会将行末的换行符算到读入的字符串里面。所以相同且正常的情况下(输入无错误,缓冲区足够大),fgets读入的字符串会比gets在末尾'\0'前面多一个换行符;行长度超过缓冲区大小时只读入前n-1个字符。

#include <stdio.h>
#include <string>
int main(int argc,const char*argv[]){
    char ch[5];
    fgets(ch,sizeof(ch),stdin);
    if(ch[strlen(ch)-1]=='\n') ch[strlen(ch)-1]='\0';
    for(int i=0;i<5;i++){
        printf("%d\t",ch[i]);
    }
    printf("--->%s\n",ch);
    return 0;
}
2.fputs()也是一个文件操作相关函数
  格式:
    fputs(数组名,stdout);  //表示将数组写到stdout中;fputs不能自动换行,也不能进行格式化的输出。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马