c++新标准(新的c++标准已经被g++执行,注意更新自己的知识啊!)

作者用EditPlus设置g++开发环境遇问题,发现C++新标准已制定,学校所学过时。介绍了g++和gcc编译器,还讲解了C++的iostream标准库,包括ostringstream等三个类,以及它们的继承关系、使用方法,最后给出不同的Hello world示例及编译注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天用EditPlus设置好了最新的g++开发环境,可是结果好家伙,连cout都不认识了,简简单单的一个"Hello word"都不能通过阿!然后干紧上网去查,才发现,C++的新标准已经制定了,上学的时候学的Turboc还有谭好强的那本c语言都已经过时很久了。中国的教育还真是落后呢,在学校学的就是非标准的,一开始就学VC++,也搞得对标准C++不了解了。现在只好补课,去掉脑子里原来那些遗毒。g++其实和gcc都是GNUc++/c编译器,至于区别,有人说gcc兼容性不好,不能编译c++,这个我就不清楚了,只是道听途说,有时间了试试就知道了。

下面看C++iostream标准库介绍

        C++引入了ostringstreamistringstreamstringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。

  istringstream类用于执行C++风格的串流的输入操作。
  stringstream类同时可以支持C++风格的串流的输入输出操作。

  strstream类同时可以支持C风格的串流的输入输出操作。

  istringstream类是从istream(输入流类)和stringstreambasec++字符串流基类)派生而来,ostringstream是从ostream(输出流类)和stringstreambasec++字符串流基类)派生而来,stringstream则是从iostream(输入输出流类)和和stringstreambasec++字符串流基类)派生而来。

  他们的继承关系如下图所示:

  istringstream是由一个string对象构造而来,istringstream类从一个string对象读取字符。
  istringstream的构造函数原形如下:

  istringstream::istringstream(string str);

 #include <iostream
#include <
sstream

using namespace
 std; 
int main
()  

istringstream istr; 
istr.str("1 56.7",); 
//
上述两个过程可以简单写成 istringstream istr("1 56.7"); 
cout
 << istr.str()<<endl; 
int
 a; 
float
 b; 
istr>>a; 
cout
<<a<<endl; 
istr>>b; 
cout
<<b<<endl; 
system("pause"); 
//
或者用return 0;”(其实必须加的,不然编译时就会报告的!)
}

 

  上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入"赋值"操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,利用分界获取的方法我们事实上完成了字符串到整型对象与浮点型对象的拆分转换过程。

  str()成员函数的使用可以让istringstream对象返回一个string字符串(例如本例中的输出操作(cout<<istr.str();)

    ^_^看明白了吧,有一些变化,原先我们都是用<iostream.h>来引入标准输入输出流库,现在改进了,将标准库变成了类,然后标准C++使用时,是要声明名字空间的(什么?我没听说过!去骂谭好强吧:))看到using namespace XXXX;了吧!那就是声明,一般我们作些小东西都是直接用系统默认得名字空间就可以了,就是std.所以回去把Hello world给改了一下就顺利通过了!

 #include <iostream>   
using namespace
 std; 
int main
()  

      cout<< "Hello world!"<<endl;

      return 0;
}

 

注意一下哦,要是用g++编译的话,最后必须打一个空行,这样文件连接时才不会出错,否则编译时会报错。还有由于这个Hello world中没有创建ostringstreamistringstreamstringstream三个类的对象所以没有加 #include<sstream>如果你要复杂些地Hello world这也有一个可以参考:

 #include <iostream>

using namespace std;

int main (int argc, char *argv[])

{

    char quit; 

 

    quit = '/0';

    while (quit != 'q')

    {

        cout << "Hello ! This is a console app." << endl;

        cout << "To create a console, go to Project Options and select" << endl;

        cout << "/'Win32 Console/'." << endl;

        cout << "Press /'h/' to see Chinese; Press q to quit " << endl;

        cin >> quit;

        if(quit =='h')

        {

            cout <<"你好!这是一个命令行方式的应用。"<< endl;

            cout <<"想要创建类似的工程,请去工程项中选择 /'win32命令控制台/'"<< endl;

            cout << "q键退出"<< endl;

        }   

    }

 

    return 0;

}

 

好了,剩下的下回分解,今天好么忙别的,遇见一个解决一个。新的c++标准好像《c++ primer》很不错,中文版翻译的也好,多看看得好,最新的是第三版。建议学C++的去买那一本就好了,其它的乱七八糟的就不用买了,添乱。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值