① 那是由于windows的工作机制造成的,启动组里面的工作目敏腊录被设置成windows\system32,而你的是64位桥败滑 *** 作系统,系统把这个映射到了syswow64下。
② 可以通过设置SetCUrrentDirectory来修正这个问题,例如:
TCHAR szPath[MAX_PATH]
if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
{
printf("GetModuleFileName failed (%d)\n", GetLastError())
return FALSE
}
枯迹 PathRemoveFileSpec(szPath)
SetCurrentDirectory(szPath)
你的配置文件是要你来写的么?具体格式是形如:student 200120022003
teacher 100110021003
这样的?
如果是以上格式的,可以通过读取配置文件,然后以数组形式处理,结果数组为key=>value的形式。
下面的代码使用于配置文件每行key的结束以teacher 100110021003没有分号结束的,如果有分号就亩镇派表示这个key还没结束。
//读取文件就省了..
$config='
student 200120022003
2004
teacher 100110021003
'
$temp=array()
$newarr=array()
$arr=explode("\n",$config)
$count=count($arr)
for($i=0$i<$count$i++){
if(strlen($arr[$i])!=1){//跳过长度小于等于1的行
if(strstr($arr[$i],' ')&&preg_match('/|;$/i',$arr[$i])){ //以结尾表示这个key有两行
$newstr=str_replace("\n","",$arr[$i].$arr[$i+1]) //将下一行的字符串连接到这一行同时去除换行(不迅贺知道为啥打印结果的时候还是有换旅陵行~)
$i++ //跳过下一行没有key的
}else{
$newstr=$arr[$i]
}
$temp=explode(' ',$newstr)
if(is_array($temp)){
$newarr[$temp['0']]=$temp['1']
}
}
}
print_r($newarr) //newarr格式为key=>value
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)