高手帮忙,中文输出
|
hqs7636
2008-05-07
import std.stdio;
import std.c.locale;
import std.conv;
import std.process;
import std.windows.syserror;
void main(char[][] argv)
{
fwide(stdout, 1);
setlocale(0, "china");
writefln("错误:",sysErrorString(to!(int)(argv[1])));//printf
system( "pause" ); // getch();
//return 1;
}
上面这段代码好不容易调通了,编译、build都不报错了,可控制台窗口就是停不住,看不到内容,不知道对了没有? 下面这段代码就一切正常,环境都是dmd2.013 import std.stdio;
void main(char[][] args)
{
printf("hello world\n");
printf("args.length = %d\n", args.length);
for (int i = 0; i < args.length; i++)
printf("args[%d] = '%s'\n", i, cast(char *)args[i]);
getch();
// return 0;
}
|
|
|
qiezi
2008-05-07
上面的错误应该是抛出异常,没传递参数,数组越界了,根本没执行到pause这一行。
直接在控制台下执行就能看到。 |
|
|
hqs7636
2008-05-07
俺把它简化成这样:
import std.stdio;
import std.c.locale;
import std.process;
void main(char[][] argv)
{
fwide(stdout, 1);
setlocale(0, "china");
writefln("你好 dmd ");
system( "pause" );
}
输出得到的是: ¥ dmd ,换成任何中文都变成人民币符号了。环境是win2003sp2, dmd2.013 |
|
|
DavidL
2008-05-08
用utf8保存,这个该加到FAQ里
|

