samchoy请进,还是那个如何建立带特殊字符的文件夹的问题

puma66 2010-11-11 11:17:07
原问题是:

比如,我想建立一个"abcããã"这样一个文件夹,用如下语句:
str[]="abcããã";
mkdir(str);
但在BCB5中,只能将代码存为ansi格式的文本,这样,str后面的三个特殊字符"ããã"就会变成三个?号,怎么解决这个问题?

你给出的答案是:

wchar_t str[] = L"abc???";
str[3] = 226;
str[4] = 226;
str[5] = 226;
_wmkdir(str);

这个确实能解决问题。但能否再改进一下呢?比如,使用AnsiString而不用wchar_t?用AnsiString我比较熟练,而对wchar_t不熟。我试着使用AnsiString来建立,结果建立出来的文件夹含有中文字符,而不是类似于"abcããã"这样的。
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
puma66 2010-11-13
  • 打赏
  • 举报
回复
好的,谢谢老蔡!我试试这段代码看看。
puma66 2010-11-12
  • 打赏
  • 举报
回复
比如:

if(a)
{
创建“\aaa\abcããã”目录
}
else if(b)
{
创建“\bbb\abcããã”目录
}
else
{
创建“\ccc\abcããã”目录
}
这个代码该怎么写好?ã字符的ASCII码是227。
jiangshx 2010-11-12
  • 打赏
  • 举报
回复

int i;
#define num 7
char c_str[num]="abc\xe2\xe2\xe2\0";
unsigned char u_str[num];
wchar_t w_str[num];
for(i=0;i<num;i++)u_str[i]=c_str[i];
for(i=0;i<num;i++)w_str[i]=u_str[i];
_wmkdir(w_str);
ccrun.com 2010-11-12
  • 打赏
  • 举报
回复
1楼的代码可以达到效果。
puma66 2010-11-12
  • 打赏
  • 举报
回复
这个试了不行啊?只创建了一个abc目录,后面三个字符被吃掉了。
samchoy 2010-11-12
  • 打赏
  • 举报
回复
我用AnsiString做不出来,用WideString倒是可以,WideString和AnsiString基本类似,你试试看吧

WideString s(L"abc\xe2\xe2\xe2");
_wmkdir(s.c_bstr());
samchoy 2010-11-12
  • 打赏
  • 举报
回复
可能是吧,干脆直接用wchar_t算了
  wchar_t s[256];

if (a)
wcscpy(s, L"aaa");
else if (b)
wcscpy(s, L"bbb");
else
wcscpy(s, L"ccc");
_wchdir(L"\\");
_wmkdir(s);
_wchdir(s);
wcscpy(s, L"abc\xe3\xe3\xe3");
_wmkdir(s);
puma66 2010-11-12
  • 打赏
  • 举报
回复
我是试了这个代码:

WideString s(L"abc\xe3\xe3\xe3");
_wmkdir(s.c_bstr());

只创建了"abc"这样的目录,后面三个字符ããã被吃掉了。我是用BCB5,在XP下。这难道是BCB5和BCB6的原因?
samchoy 2010-11-12
  • 打赏
  • 举报
回复
俺在BCB6 Windows XP下验证通过的
puma66 2010-11-12
  • 打赏
  • 举报
回复
老蔡,你这代码好象不行啊?只创建了"abc"这样的目录,后面三个字符ããã被吃掉了。
samchoy 2010-11-12
  • 打赏
  • 举报
回复
  WideString s;
if (a)
s = WideString(L"aaa");
else if (b)
s = WideString(L"bbb");
else
s = WideString(L"ccc");
_wchdir(L"\\");
_wmkdir(s.c_bstr());
_wchdir(s.c_bstr());
s = WideString(L"abc\xe3\xe3\xe3");
_wmkdir(s.c_bstr());

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧