如何使用CString的Format 其实不止是Format,还有Sprintf等,我想要一个字符串如: '%xx%'中间的xx代表一个数字,单引号和百分号都是字符串的一部分。如何一句format成一个字符串,(不要说一个字符一个字符的等于进去)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 For example1:int a=10;float b=10.00;char* test="asdfsf";CString str;str.Format("%d, %f, %s", a, b, test);For example2:#include <stdio.h>void main( void ){ char buffer[200], s[] = "computer", c = 'l'; int i = 35, j; float fp = 1.7320534f; /* Format and print various data: */ j = sprintf( buffer, "\tString: %s\n", s ); j += sprintf( buffer + j, "\tCharacter: %c\n", c ); j += sprintf( buffer + j, "\tInteger: %d\n", i ); j += sprintf( buffer + j, "\tReal: %f\n", fp ); printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );} CString str;str.Format(_T("%c"), "%xx&"); int a=65;CString str;str.Format("%c%d%c", '%', a, '%');MessageBox(str, MB_OK); void Format( LPCTSTR lpszFormat, ... );具体format的设置见msdn,有详细的描述。 int a=65;CString str;str.Format("%s%d%s", "'%", a, "%'");MessageBox(str, MB_OK); CString Str;Str.Format("'%%xx%%'");这样就可以了 理解是否正确?char * str = " '%xx%' ";CString szTemp;//szTemp = str;szTemp.Format("%s",str); 看来大家没有理解好我的意思,事实上format我知道用,只是 '%xx%' 这个格式我转换不了,用的是jiangping_zhu(娜可露露之风之刃)的方法str.Format("\'%%.2d%%\'",15);其中xx为一个整型值,在转换单引号时,系统报错, str.Format("\'%2d\%\'",5); ->',5%'str.Format("\'\%27\%\'");->'%27%' to aben456(风轻扬) 你的第一个少了一个%号,第二个数字是写死的,好像都和我的想法不同。 hjian79(健)老兄,你写错了,不是我得代码不对,是你看漏了,前一个是3个%,后面是2个%,str.Format("\'%%%02d%%\'",15);祝好运!!!!!!!!!!!! int i = 1; CString strTest; strTest.Format("\'%%%2d%%\'", i); i = 12; strTest.Format("\'%%%2d%%\'", i); strTest.Format("'%%%2d%%'", i);也可以。 win32 sdk 怎么响应鼠标进入消息! 【求助--工厂模式】 把一个产品基类声明为抽象类,是否有问题?? 在h中定义一个动态数组,int arrayMy【】,为什么编译不通过啊 vc6如何调用.net的漂亮控件吗?? 用DrawText如何画出Disable状态时的字? IDispatch error #3107 是什么错误? 在IE插件中有没有什么方法获得IE设置的代理服务器信息? 急,谁能给一段操作Web Browser控件的代码 如何生成一个.wav文件? 缺少MFC动态连接库的错误? :( SQL Server 关于MFC42UD.LIB
int a=10;
float b=10.00;
char* test="asdfsf";
CString str;
str.Format("%d, %f, %s", a, b, test);For example2:
#include <stdio.h>void main( void )
{
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f; /* Format and print various data: */
j = sprintf( buffer, "\tString: %s\n", s );
j += sprintf( buffer + j, "\tCharacter: %c\n", c );
j += sprintf( buffer + j, "\tInteger: %d\n", i );
j += sprintf( buffer + j, "\tReal: %f\n", fp ); printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}
str.Format(_T("%c"), "%xx&");
CString str;
str.Format("%c%d%c", '%', a, '%');
MessageBox(str, MB_OK);
CString str;
str.Format("%s%d%s", "'%", a, "%'");
MessageBox(str, MB_OK);
Str.Format("'%%xx%%'");
这样就可以了
CString szTemp;
//szTemp = str;
szTemp.Format("%s",str);
str.Format("\'%%.2d%%\'",15);其中xx为一个整型值,在转换单引号时,系统报错,
str.Format("\'\%27\%\'");->'%27%'
第二个数字是写死的,好像都和我的想法不同。
str.Format("\'%%%02d%%\'",15);祝好运!!!!!!!!!!!!
CString strTest;
strTest.Format("\'%%%2d%%\'", i); i = 12;
strTest.Format("\'%%%2d%%\'", i);
也可以。