- istrstream和ostrstream在98标准中废弃,取而代之的是istringstream和ostringstream,实现类似于C语言中sprintf和sscanf的效果
cpp
#include <iostream>
#include <cstdio>
#include <sstream>
using namespace std;
int main(void){
int i = 1234;
double d = 56.78;
char s[] = "hello";
#if 0
char buf[100] = {0};
sprintf(buf, "%d %lf %s", i, d, s);
printf("%s\n", buf);
char str[] = "100 1.23 world";
sscanf(str, "%d %lf %s", &i, &d, s);
printf("%d %lf %s\n", i, d, s);
#endif
ostringstream oss;
oss << i << ' ' << ' ' << d << ' ' << s;
cout << oss.str() << endl;
istringstream iss;
iss.str("100 1.24 world");
iss >> i >> d >> s;
cout << i << ", " << d << ", " << s << endl;
return 0;
}
文件流
- C++将文件看成是一个个字符在磁盘上的有序集合,用流来实现文件的读写操作
- C++中用来建立流对象的类有ifstream(输入)、ofstream(输 出)、fstream(输入输出)
cpp
#include <iostream>
#include <fstream>
using namespace std;
int main(void){
int i = 1234;
double d = 56.78;
char s[] = "hello";
ofstream ofs("a.txt");
ofs << i << d <<s << endl;
ofs.close();
ifstream ifs("a.txt");
int i2;
double d2;
string s2;
ifs >> i2 >> d2 >> s2;
cout << i2 << endl;
cout << d2 << endl;
cout << s2 << endl;
return 0;
}