易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下wprintf只输出fgetws获得的第一个字符

1> 用putty 来登录Linux, putty的character set 是UTF-8
Linux的环境变量$LANG是en_US.UTF-8

2> 代码,格式是UTF-8

#include <stdio.h>
#include <locale.h>
int  main(void)
{
        setlocale(LC_ALL,"");
        wchar_t inp[6];
        fgetws(inp, 6, stdin);  //input 1234
        wprintf(L"%s", inp);  //it will only output 1

        wchar_t *inp2="1234";
        wprintf(L"%s", inp2);  //it will output 1234

        return  0;
}

3>结果
请看注释。debug进去发现fgetws执行后inp是1234,不知道为什么wprintf只能输出第一个字符。


有这么奇特。。。。。。。。。。。

是很奇怪 在window VC环境下, 就可以正确显示


谢谢stardust20, 请问为什么第一个wprintf里面的S需要大写,第二个需要小写呢?

第二个也可以大小吧。。没仔细研究过。。。那个可以用吗?

第一个改成大写是可以了,但是第二个要是写成大写S,就会输不全

我在使用wprintf/fgetws时,碰到很多异常现象。
比如wprintf/fgetws(....,stdin)使用后,printf可能就无法输出,或者接下来再使用fgetws(...,stdin)时,fgetws不会读stdin.

很困惑,不知道除了fgetws(..,stdin)能够从stdin读unicode,还有没有其他更好的办法
{


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

linux 下usb设备驱动问题

linux 下usb设备,在root权限下,设备可以正常找到驱动,
但在普通用户下找不到设备驱动,不知道是什么原因?请高手指教
应该是root为了防止普通用户破坏吧,所以加个权限。。。我的就是

权限问题 root是超级用 ......

c语言实现linux time相关函数 - C/C++ / C语言

现在需要在一个嵌入式系统中实现时间函数,编译器未提供time库函数,请问大家如何用c语言实现时间函数啊?
年月日时分秒 到 整数秒(从1970年开始) 之间的相关转换啊
类似mktime 和localtime的功能,谢谢
mktime ......

Linux中子父进程 - Linux/Unix社区 / 程序开发区

在Linux中,
如果父进程调用exit(0)退出,
那么由该进程创建的两个子进程会立即退出吗???
希望围绕该问题说清楚点,谢谢了。
不会
两个子进程脱离了父进程,独立运行
父进程死掉后,其所有子孙进程被init收 ......

linux下Eclipse+CDT,如何查看函数的定义、声明

在linux下使用Eclipse+CDT,如果要查看系统提供的一些函数的定义、声明,该如何做呢。
F3好像是可以查看函数声明的,但按了以后没什么反应。是不是需要在Eclipse中设置一下相应的路径才可以。

使用Eclipse建立一 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号