//===========================================================
//the use of istrstream
//===========================================================
/*
istrstream 类是从 istream 类派生的,它是用来将文本项转换为变量所需要的内部格式。
istrstream 类的构造函数有两个:
istrstream::istrstream(char *s);
istrstream::istrstream(char *s,int n);
参数说明:
⒈第一个参数 s 是一个字符指针或字符数组,使用该串来初始化要创建的流对象。
⒉ n 表示使用前 n 个字符来构造流对象。
*/
举例
//===========================================================
#include <strstream>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
//-----------------------------------------------------------
#define max_string_length 1024
void main()
{
string str;
char buffer[max_string_length];
ifstream in("in.txt"); //文件中内容为(1,1)(0,0)
while (getline(in,str))
{
for (int i = 0; i <= str.size(); ++i)
{
if (str[i] == '(' || str[i] == ')' || str[i] == ',') //将非数字的符号变为空格,因为istrstream流以空格为分割符
{
buffer[i] = ' ';
}
else
buffer[i] = str[i];
}
buffer[i+1] = '\0';
istrstream inp(buffer); //将buffer中的字符读入double型变量
double x1,y1,x2,y2;
inp >> x1 >> y1 >> x2 >> y2;
cout << x1 << endl;
cout << y1 << endl;
cout << x2 << endl;
cout << y2 << endl;
cout << buffer << endl;
}
}