网址: 洛阳地区历史同期最高最低温度
绘制10年间同期最高最低温度曲线图。
2010年2月3日星期三
2010年1月12日星期二
C++ 命名空间 变量声明 定义
终于明白了C++的命名空间中变量声明的问题 正确方式为在头文件中声明如下: namespace A { extern int a;} 在cpp文件中定义如下:namespace A{int a=100;}
C++ 编码转换 多字节字符 宽字符
C++ 中可用的字符编码总体上说有两种: 一种为多字节字符, 如Ansi编码,每个汉字由2个char 确定,或者utf-8编码,每个汉字由三个char 确定。另一种为宽字符编码,每个汉字直接由1个short(wchar_t)确定。
自己利用两个Win32 API函数写了两个用于编码转换的函数
//编码转换
#include
#include
//UTF8编码转换为Ansi编码
std::string & Utf8ToAnsi(std::string &scr, std::string &des)
{
size_t n = scr.size()*2;
wchar_t *sl = new wchar_t[n];
char *sm = new char[n];
//多字节(UTF8)编码转换为宽字节编码
MultiByteToWideChar(CP_UTF8,0,scr.c_str(),-1,sl,n);
//宽字节转换为多字节(Ansi)编码
WideCharToMultiByte(CP_ACP, 0,sl, -1,sm, n,NULL,0);
des = sm;
delete []sl;
delete []sm;
return des;
}
//Ansi编码转换为Unicode(Utf16)编码
std::wstring & AnsiToUtf16(std::string &scr, std::wstring &des)
{
size_t n = scr.size();
wchar_t *sl = new wchar_t[n+1];
MultiByteToWideChar(CP_ACP,0,scr.c_str(),-1,sl,n+1);
des = sl;
delete []sl;
return des;
}
2009年12月19日星期六
CPP中多重 else if语句的简化
函数
可以写为如下更简洁的形式
int ifelse(int m)
{
if(m<10)
return 5;
else if(m<20)
return 15;
else if(m<30)
return 25;
else if(m<40)
return 35;
else if(m<50)
return 45;
else
return 55;
}
可以写为如下更简洁的形式
int ifelse(int m)
{
return m<10 ? 5
: m<20 ? 15
: m<30 ? 25
: m<40 ? 35
: m<50 ? 45
: 55;
}
2009年12月18日星期五
C++ 读取整个文件,每行有不确定的数
double val=0;
vector<double> vecdle;
string sline;
ifstream fin("filename")
while(getline(fin,sline))
{
istringstream ssin(sline);
vector<double> vecdle;
string sline;
ifstream fin("filename")
while(getline(fin,sline))
{
istringstream ssin(sline);
2009年12月14日星期一
2009年12月10日星期四
数值分析--经过三点的二次函数
经过三点(x1,y1),(x2,y2),(x3,y3)的二次函数用c++语言表示如下:
double quad(double x1,double y1,double x2,double y2,double x3,double y3,double x)
{
double m1 = (x-x2)*(x-x3)*y1/((x1-x2)*(x1-x3)),
m2 = (x-x1)*(x-x3)*y2/((x2-x1)*(x2-x3)),
m3 = (x-x1)*(x-x2)*y3/((x3-x1)*(x3-x2));
return (m1+m2+m3);
}
double quad(double x1,double y1,double x2,double y2,double x3,double y3,double x)
{
double m1 = (x-x2)*(x-x3)*y1/((x1-x2)*(x1-x3)),
m2 = (x-x1)*(x-x3)*y2/((x2-x1)*(x2-x3)),
m3 = (x-x1)*(x-x2)*y3/((x3-x1)*(x3-x2));
return (m1+m2+m3);
}
订阅:
博文 (Atom)