[黑马IOS自学第七篇]fets文件函数等,结构体,结构体数组,宏学习

一.fgets函数


 fgets不能进行格式化输出输入

 代码如下

<span style="font-size:18px;">//fgets()
    /*
    文件操作相关函数
    从键盘上接收一个字符串保存到数组中
    
    
     scanf()缺点不能接收空格 
     gets(str)优点 :可以接收空格
    
    */
    char str[10] ;
   fgets(str,sizeof(str),stdin);//安全的,输入的字符串长度大于
    puts(str);
    //数组长度时,会将最后一个元素变为\0
    /*
    12345678abcd
    12345678a
    */
    
    for (int i = 0; i < 10 ; i++) {
       printf("%d",str[i]);
    }
    /*
    如果只输入8个第九个元素为空格
    aaaaaaaa
    aaaaaaaa
    
    97 97 97 97 97 97 97 97 10 0
    
    */
    int len =strlen(str);//不包含\0如果少就包含空格所以整体字符大一个
    printf("%d\n",len);
    
    if (str[len-1]=='\n') {
       str[len-1]='\0';
    }
    for (int i = 0; i < 10 ; i++) {
       printf("%d",str[i]);
    }
    printf("\n");
    
   fputs(str,stdout);//不会自动换行
    printf("\n");
   puts(str);//带换行

    /*
    总结果:
    aaa
    aaa
    
    97 97 97 10 0 95 -1 127 0 0 4
    97 97 97 0 0 95 -1 127 0 0
    aaa
    
    */

    return 0;

</span>

 


2).const使用

 const int Mx =10;

    //常量read only

    int *p =&Mx;

   *p = 100 ;//强制修饰常量

    printf("Mx = %d , *p =%d\n",Mx,*p);

    //Mx = 10, *p = 100


    const int Mx =10;

    //常量read only

    

    int *p =&Mx;

    //intializingint * with an expression of type const       int * discards qulifier

   *p = 100 ;//强制修饰常量

    printf("Mx = %d , *p =%d\n",Mx,*p);

    //Mx = 10, *p = 100

    

    //主要是看const*的位置

    //1.const修饰的指针变量指向可变 const *左边

    int a = 10 ;

    int b = 20 ;

    const int *p1 =&a;

               p1=&b;//指向可以改变

    *p1=1000;//read-onlyvariable is not assignable

    //p1指向的变量的值是不能改变

    

    const int *p2 =&b;

              p2 =p ;

    *p2=1000;//read-onlyvariable is not assignable

    </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值