机器人工程师的非机器人编程技能

自从接触到KUKA机器人以来,更多关注到了PC层面上的编程。工业现场多是采用快速更换的PLC系统硬件,这些将会注重在现场离散信号控制方面;而PC层面的编程更多会注重在数据传输、显示、存储方面的运用。那么,有什么编程技术值得储备呢?

Continue reading

CString 和 cout 和 string

CString 和 cout

MFC里面直接使用CString比较方便,不过并不能直接由cout输出。看下面代码,在VC6和VC2010中输出是不同的。

#include <afx.h>
#include <iostream>
using namespace std;

void main()
{

CString s1="1234567890";
cout<<s1;

}

cout<<s1;

改为

cout<<s1.GetBuffer(0); //MFC4.2中的,高版本增加GetString()

或者

cout<<LPCTSTR(s1);

就可以输出正确的字符串内容,原理是获取字符串的首地址指针。

CString 和 string

由此可以引申出cstring类型转化为string类型方法:

#include <afx.h>
#include <iostream>
#include <STRING>
using namespace std;

void main()
{
	string s0="0987654321",s3="",s4="";
	CString s1="1234567890";

	s1=s0.c_str(); //string类型转换为cstring类型
	s3=LPCTSTR(s1); // 注 *
	s4=s1.GetBuffer(0); //cstring类型转换为string类型

	cout<<s0<<endl;
	cout<<LPCTSTR(s1)<<endl;
	cout<<s3<<endl;
	cout<<s4<<endl;

}

* 关于 LPCTSTR

You can freely substitute CString objects for const char* and LPCTSTR function arguments
LPCTSTR   A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.
LPTSTR      A 32-bit pointer to a character string that is portable for Unicode and DBCS.

扩展阅读

关键字:cstring, string, cout, 指针, LPCTSTR