写一点笔记,C++
fflush(stdin) 可用于清空输入缓冲区
stringstream 可以简化类对象之间的转化
stringstream .str().c_str()可以返回C类型的字符串
#include <sstream>
#include <iostream>
using namespace std;
int main()
{
std::stringstream stream;
std::string result;
//将整型数据转换为string
int i = 100;
stream << i;
stream >> result;
std::cout << result << std::endl;
stream.clear();//再次使用时需要调用clear方法,重置了流的状态标志
string result_2;
stream << 8888;
stream >> result;
std::cout << result << std::endl;
stream.str("");//清空流内容,clear()方法不会清空流内容
string result_1 = "world ";
stream.clear();
stream << "hello "<<result_1 << 100;
result_1 = stream.str();//返回流内储存的string类型对象
std::cout << result_1 << std::endl;
}
ANSI标准说明了五个预定义的宏名:
__LINE__ 源文件的文件名;
__FILE__ 该行代码的所在行号;
__DATE__ 含有形式为月/日/年的串,表示源文件被翻译到代码时的日期;
__TIME__ 含有形式为时/分/秒的串,源代码翻译到目标代码的时间作为串;
__STDC__ 如果实现是标准的,则含有十进制常量1。
boost::lexical_cast为数值之间的转换提供了良好的解决方案,可实现任意类型向数值(int, double…)的转化,当转换失败是抛出bad_lexical_cast异常。