| 发表于:2007-07-04 12:34:294楼 得分:5 |
这好像没有异常吧,atoi是按照前n(包括0个)个数字转换的,如atoi( "12ad34df ") = 12; -------------------------------------------------------------------------------- 正解。没有异常。即使有异常,处理方式也应该是这样的: cstring str1 = "abcd "; __try { int x = atoi(str1); } __except(exception_EXECute_handler) { afxmessagebox( "数据错误: "); } atoi()是c/c++语言运行库函数,是绝不会抛出mfc定义的异常类型cexception的。如果函数运行中出现了问题(例如,假定atoi函数不能正确出入传入空指针的情形),可以用windows的结构化异常处理机制进行处理。 对于windows编程,建议使用strtointex()函数。使用这个函数时,要在源代码文件开头处加上: #include <shlwapi.h> #pragma comment(lib, "shlwapi.lib ") 详情见msdn。 | | |
|