为什么写c的时候用atoi函数总提示undeclared identifier,小文件可以编译通过,win32工程就不行了,该怎么办?求助~
控制台工程下(就是你说的小文件),使用atoi函数需要加头文件包含:#include<stdlib.h>
win32工程下,因为默认包含了#include<windows.h>,atoi函数是默认可以直接使用的。
你使用不了,一般是因为你的工程是UNICODE模式的(而不是多字节字符集模式),这种模式下不能使用atoi函数,是因为UNICODE模式下默认要求使用的宽字节字符串atoi函数不支持。
这时候,使用atoi在UNICODE下的对应函数wtoi就可以了。
int _wtoi(const wchar_t *);而更合适的函数是_ttoi,这个函数可以适应代码在字符集之间切换。
追问只是把atoi换成wtoi吗?
换了没用啊
追答int i = _wtoi(L"123");除非是其它错误,在win32工程下,这样使用没有问题。
直接这样写吗
追答头文件加上#include<tchar.h>
函数使用:
int i1 = _ttoi(str1);追问还是没用
我这里测试没有任何问题。
你的程序使用了stdafx预编译,这里需要看include次序和包含屏蔽的问题了。调整包含在之后看看,并且在vc6的安装目录查找这个tchar.h文件,看看是否存在并且目录在菜单(工具-选项-目录)的包含之中。
好的我看下,谢谢
通过了,是把那个头文件放在后面就好了
谢谢了
真的谢谢
请附上代码好吧!要不我看不出来也,求采纳
追问加了,还只是小文件里可以用
追答嗯!你看看这个有帮助不 http://bbs.csdn.net/wap/topics/380058721