首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

脑子有点乱 请高手帮忙讲一下解决办法

2012-06-06 
脑子有点乱 请高手帮忙讲一下#include iostream#include fstream#include stringusing namespace st

脑子有点乱 请高手帮忙讲一下
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

#define _MAX_PATH 20
const char* protocol = "d:\\test.txt";

void AddItem(char *entry,char *root)
{
char path[_MAX_PATH];
strcpy(path, root);
strcat(path, entry);  
}
int main(int argc, char *argv[])
{
FILE *fp = NULL;
char path[_MAX_PATH];
char key[_MAX_PATH];
char root[_MAX_PATH];
char file[_MAX_PATH];
char value[_MAX_PATH];
int len;

strcpy(path,protocol);
strcpy(root,path);
fp = fopen(path,"rb");
if(!fp)
exit(-1);

file[0] = 0;
len = -1;
while(!feof(fp))
{
if(fscanf(fp,"%[^=]=%[^\n\r] ",value))
{
AddItem(file,root);
strcpy(file, value);//1,请问这里的file会受到AddItem内file数值变化的影响吗?
// 2,是否会造成缓冲区溢出?
continue;
}
}
cout<<sizeof(file)<<endl;
fclose(fp);
return 0;
}

[解决办法]
//1,请问这里的file会受到AddItem内file数值变化的影响吗?
不会,被覆盖了

// 2,是否会造成缓冲区溢出?
有可能,建议用strncpy

热点排行