int FLAG=1;
sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&FLAG,&_x,&_y);
ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]=FLAG;sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&(ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]),&_x,&_y);从个方面上来说,这两个语句是一样的吧?
sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&FLAG,&_x,&_y);
ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]=FLAG;sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&(ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]),&_x,&_y);从个方面上来说,这两个语句是一样的吧?
解决方案 »
- 求stl filter
- 请问如何将数据导出到EXCEL2003中
- tab控件 为什么显示不了图标??
- 请问msg结构中的wparam中在on—ctlcolor中包含有发送者的ID吗?
- VC++如何直接调用SQL语句?
- UDP的使用WSARecvFrom和WSASendTo的最基本的例子。(100分马上给)
- 关于console程序的问题
- 请问高手们vc中的音节发声函数是哪个?
- 一个Dialog程序,我在WM_EARSEBKGND,画了一个背景位图,在这个基础上,我在OnPaint()中用TextOut.....
- .com文件是什么东东?和.exe文件有什么区别
- 编译时出错,请高手指点!!!
- 初学VC
好象不一样的
我的Buffer是从一个文件中读取出来的数据.Buffer=CString Type。m_pSnake是个链表,这些数据的定义都是没有问题的。sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&(ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]),&_x,&_y);
当第三个%d=3的时候,ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]的不到这个值!但
int FLAG=1;
sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&FLAG,&_x,&_y);
ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]=FLAG;
读出来的值都很正确。可是如果单独把Buffer设置为"0,0,3,1,1"等等字符串,两个的执行效果又都一样了!!为什么?
// 不代表真实汇编代码,只是示例
push &_y
push &_x
push &(ArrayGrid[m_pSnake.now->x][m_pSnake.now->y]); // 此时看到的 x ,y 值是旧的
push &(m_pSnake.now->y)
push &(m_pSnake.now->x)
push "%d,%d,%d,%d,%d "
push Buffer
call sscanf // 这时 sscanf 才把读到的值写入 m_pSnake.now->x,y 显然,这个不会有这样的问题:int FLAG = 1;
sscanf(Buffer,"%d,%d,%d,%d,%d ",&(m_pSnake.now->x),&(m_pSnake.now->y),&FLAG,&_x,&_y);
ArrayGrid[m_pSnake.now->x][m_pSnake.now->y] = FLAG; // 这时 m_pSnake.now->x,y 被更新了
THANK TO In355Hz(好象一条狗)