文件的存储与读取分析后续具体应用

来源:互联网 发布:神像仓库升级数据 编辑:程序博客网 时间:2024/04/30 07:49

今天要用.txt文件来读取信息。内容格式为: 1,xxx,111,111

                                                             2, xxxx,333,333

x代表字符,数字代表是读的是整数型。读出的内容放到一个结构体内struct PlaceLocation{ int number; char name[20];int x,int y}。现在要做的工作有1,一行一行读取内容。2,读取的内容存放到结构体中。3,以","号分隔。

首先打开文件pFile = fopen(cFileName,"r"), while( fgets(cLine,100,pFile) != NULL){ 你自己要处理的代码 }这句话就是一行一行的读取内容。

 char seps[]   = ",";//用以分隔的字符
 char *token;//被分隔后的字符指针

while( fgets(cLine,100,pFile) != NULL)

{

  token = strtok( cLine, seps ); // 
  PlaceLocation.number = strtol(token,NULL,10); //将读取的字符转化成数字
   token = strtok(NULL,seps);
 strcpy(PlaceLocation.name,token);//

 token = strtok(NULL,seps);
PlaceLocation.x = strtol(token,NULL,10); 

token = strtok(NULL,seps);
PlaceLocation.y = strtol(token,NULL,10); 

}

fclose(pFile);//关闭文件
  

这是最简单的应用,可以在这个基础上可以读取更复杂的内容。

这里列出一些常用的转换函数:

char * to int   : char *c = "123"     int i= strtol(char *c,NULL,10);//这里10就是10进制,换成8就是8进制

char [] to char *; strcpy(char *,char[]);

TCHAR tch[] to CString str;   str.Format(_T("%s"),  tch); 

CString str to char cFileName[];   wcstombs(cFileName, str ,str .GetLength());

这里几个是比较常用的,也很需要的。简单的可以上网搜了。