zoukankan      html  css  js  c++  java
  • 由一段代码说开去——sscanf与string

     1 #include <iostream>
     2 #include <sstream>//大概是字符串流
     3 #include <string>
     4 using namespace std;
     5 
     6 //c++方法 将double数值 转换成string对象
     7 string  convertToString(double x)
     8 {
     9   ostringstream o;
    10   if(o<<x)//将x作为string流入o //很像c语言里面的sprintf
    11     return o.str();//将o中的值转换成string对象
    12   else
    13     return "conversion error";//o读取x失败
    14 }
    15 
    16 //c++方法 将string对象转换成double数值;
    17 double convertFromString(string & s)
    18 {
    19   istringstream is(s);
    20   double x;
    21   if(is>>x)//很像c语言里面的sscanf 从流中第一个字符开始分流出一个double
    22     return x;
    23   else
    24     return 0.0;
    25 }
    26 int main()
    27 {
    28   string a,e;
    29   char b[10];
    30   int c=2013;
    31   double d=3.1415;
    32   /*c方法将数值转换成string*/
    33   sprintf(b,"%d",c);
    34   a=b;
    35   cout<<a<<endl;
    36   /*c++方法将数值转换成string*/
    37   e=convertToString(d);
    38   cout<<e<<endl;
    39   /*c方法从string中分离出数值*/
    40   a+="good";
    41   c=-1;//确保下一个输出是从a中获得的值
    42   sscanf(a.c_str(),"%d%*s",&c);
    43   cout<<c<<endl;
    44   /*c++方法从string中分离一个double值*/
    45   e+="ok";//这样能够考察一下是否是分离
    46   d=-1;
    47   d=convertFromString(e);
    48   cout<<d<<endl;
    49   return 0;
    50 }

    1.sscanf(char * str,"格式符",...)函数和sprintf(char *str,"格式符",...)是c语言里面两个不错的函数 理解起来对流的理解有帮助 sscanf()就是从第一个参数字符串中按照转换符分离成不同的字段(存储在不同的内存里) 这样听起来就像是输入流了  sprintf()呢 就是把 
    字段放进str里面

    2.c++的sstream 说实话我在书上面没有翻到过 不过在头文件里确实见过 这个应该是string stream  有两个类:istringstream 字符串输入流 >>   ostringstream 输出流<<  这两个可以构造函数来取代c里面的 sscanf()和sprintf()函数;

  • 相关阅读:
    day19(上)_IO流2(BufferedReaer,BufferedWriter,BufferedInputStream,BufferedOutputStream)
    day19(下)_IO流4(InputStreamReader,OutputStreamWriter,流操作规律总结)
    Synchronized锁 IT
    Linux查看端口信息命令 IT
    ReentrantLock锁 IT
    让网站实时生成多种电子书:jar、umd、chm、pdf、epub
    mysql性能的检查和调优方法
    新型的大型bbs架构(squid+nginx)
    uchome中的防反复提交机制
    joymobiler V2.7发布,支持pdf文档的生成
  • 原文地址:https://www.cnblogs.com/dragonfive/p/2909195.html
Copyright © 2011-2022 走看看