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,还有没有其他更好的办法
{
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
linux 下usb设备,在root权限下,设备可以正常找到驱动,
但在普通用户下找不到设备驱动,不知道是什么原因?请高手指教
应该是root为了防止普通用户破坏吧,所以加个权限。。。我的就是
权限问题 root是超级用 ......
现在需要在一个嵌入式系统中实现时间函数,编译器未提供time库函数,请问大家如何用c语言实现时间函数啊?
年月日时分秒 到 整数秒(从1970年开始) 之间的相关转换啊
类似mktime 和localtime的功能,谢谢
mktime ......
在Linux中,
如果父进程调用exit(0)退出,
那么由该进程创建的两个子进程会立即退出吗???
希望围绕该问题说清楚点,谢谢了。
不会
两个子进程脱离了父进程,独立运行
父进程死掉后,其所有子孙进程被init收 ......
在linux下使用Eclipse+CDT,如果要查看系统提供的一些函数的定义、声明,该如何做呢。
F3好像是可以查看函数声明的,但按了以后没什么反应。是不是需要在Eclipse中设置一下相应的路径才可以。
使用Eclipse建立一 ......