记录自己对于c/c++的DSA学习历程 1-3

1.自己容易犯的错就是:printf后面老是加上一个&
2.freopen 的使用:
   FILE*freopen(char*filename,char*mode,FILE*source);
作用是:
   将从source读入的函数换为从filename处读入||将写入source的函数写至filename
3.stdio.h
中的fprintf\sprintf\printf三兄弟
  fprintf\printf通常都可以写入(除非文件磁盘满了,fprint写入会出现问题)
sprintf则可能出现问题,其用于c-style string 固内存需求较高,最后一定自动填入'\0'的。
int sprintf(char*object,char*format,[argument]);
4.对于域宽和精度按输入要求的:
利用%*.*f,后面的参数里加上这几个*代替的变量就可以了
5.对于字符串的按行输入
 建议利用fgets(char*obj,int size,stdin)代替gets(obj)//事实上读入fgets的可能只有size-1个字符,因为会自动填入\0,因为读到\n也会停止,所以称作按行输入
         原因:gets(obj)有写入到未知空间的可能性,很不妙
6.浮点数的陷阱:
  因为浮点数也是按照二进制存储的,所以
for(double i=0;i!=10;i+=0.1)
//死循环 因为0.1在计算机的存储方式为:1/2^4+……
7.memset
  通常是给字符数组赋值的额。
因为其按照字节的单位赋值
 eg.  int a[5]={0};
        memset(a,1,5*sizeof(int));//打算以1给a的所有元素赋值但是失败了
      理由:memset是按照字节赋值的,且其形参为int型(整形提升)
         给所有数组赋值0 倒是可行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值