诚恳求助:文本文件中数据的读取问题
如下所示的格式:
<FRAME_LON>95.893426</FRAME_LON>
<FRAME_LAT>40.244672</FRAME_LAT>
^^^^^^^^^
^^^^^^^^^
有很多行,要读取其中的数字,怎样分离出来呀?
关键是<FRAME_LON>与数字间无空格或回车,若按字符读取,就会读取整行成为一个字符串,
<>中的字符串与夹在中间的数字之间是一一对应的,不知怎样进行有效分离,用结构体?
静盼高手回复,不胜感激!
问题点数:80、回复次数:5Top
1 楼UPCC(杂食动物)回复于 2006-08-01 23:24:36 得分 0
XML文件吗!很规范的,既然你发在C++了,那么直接写一个类读取很容易啊。
如果使用VC或者C#的话都有专门类出来了,使用C#处理就太容易了!
简单的说,先一行一行读出来,然后处理就可以了。这个相对XML的流处理就容易多了。
Top
2 楼UPCC(杂食动物)回复于 2006-08-01 23:28:15 得分 0
XmlDocument document = new XmlDocument();
document.Load(file);
XmlNodeList list = document.ChildNodes;
foreach(XmlNode xn in list)
{
XmlElement xe = (XmlElement)xn;
if(xn.Name == "FRAME_LON")
{
xe.InnerText;
}
else if(xn.Name == "FRAME_LAT")
{
xe.InnerText;
}
}Top
3 楼jigangwang(wang)回复于 2006-08-02 08:41:02 得分 0
使用xerces XML文件解析器,应该比较好解决.Top
4 楼jixingzhong(瞌睡虫·星辰)回复于 2006-08-02 09:28:14 得分 0
也可以用 MSXML解析XML ...Top
5 楼windking21(想玩玩WOW 真的那么难吗)回复于 2006-08-02 09:38:55 得分 0
c++ 里的函数 strtok 就能满足你的需要
Example
// crt_strtok.c
/* In this program, a loop uses strtok
* to print all the tokens (separated by commas
* or blanks) in the string named "string".
*/
#include <string.h>
#include <stdio.h>
char string[] = "A string\tof ,,tokens\nand some more tokens";
char seps[] = " ,\t\n";
char *token;
int main( void )
{
printf( "Tokens:\n" );
/* Establish string and get the first token: */
token = strtok( string, seps );
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token );
/* Get next token: */
token = strtok( NULL, seps );
}
}
Output
Tokens:
A
string
of
tokens
and
some
more
tokens
Top




