
谁能帮我解释一下这个C++程序是什么意思啊?麻烦帮我每条语句加个详细的注释
#include<strstrea.h>voidmain(){chara[50],b[50];istrstreamsin(a);ostrstreamsout(b,size...
#include<strstrea.h>
void main()
{
char a[50],b[50];
istrstream sin(a);
ostrstream sout(b,sizeof(b));
cin.getline(a,sizeof(a));
char ch=' ';
int x;
while(ch!='@')
{
if((ch>=48)&&(ch<=57))
{
sin.putback(ch);
sin>>x;
sout<<x<<' ';
}
sin.get(ch);
}
sout<<'@'<<ends;
cout<<b<<endl;
} 展开
void main()
{
char a[50],b[50];
istrstream sin(a);
ostrstream sout(b,sizeof(b));
cin.getline(a,sizeof(a));
char ch=' ';
int x;
while(ch!='@')
{
if((ch>=48)&&(ch<=57))
{
sin.putback(ch);
sin>>x;
sout<<x<<' ';
}
sin.get(ch);
}
sout<<'@'<<ends;
cout<<b<<endl;
} 展开
1个回答
展开全部
//字符串缓冲流操作
//取出字符串中的数字
#include<strstream.h>
void main()
{
char a[50],b[50];
istrstream sin(a,sizoeof(a)); // 定义字符串缓冲输入流,绑定到字符数组a(以后从sin输入,就是从对应数组a读取)
ostrstream sout(b,sizeof(b)); // 同样定义字符串缓冲输出流,绑定到字符数组b(以后输出到sout的东西都会进入数组b)
cin.getline(a,sizeof(a)); // 从标准输入(通常是键盘输入)获取一行输入(最多50个字符)
char ch=' '; // ch字符变量初始化为空格
int x; // 从输入流获取的一个整数
while(ch!='@') // 如果读取的字符是@,结束输入,否则一直到sin的结尾(最多50个字符)
{
if((ch>=48)&&(ch<=57)) // 判断字符ascii介于48与57之间,也就是数字0-9
{
sin.putback(ch); // 数字,ok 把这个字符还放入字符串缓冲输入流里
sin>>x; // 从sin读取一个整数(直到碰到非法字符),保存到x
sout<<x<<' '; // 把x输出到字符串缓冲输出流,也就是对应数组b里面
}
sin.get(ch); // 继续从sin,获取一个字符
}
sout<<'@'<<ends; // 最后结束在字符串缓冲输出流输入一个字符‘@’,与结束符
cout<<b<<endl; // 输出b里内容到标准输出--屏幕
}
//取出字符串中的数字
#include<strstream.h>
void main()
{
char a[50],b[50];
istrstream sin(a,sizoeof(a)); // 定义字符串缓冲输入流,绑定到字符数组a(以后从sin输入,就是从对应数组a读取)
ostrstream sout(b,sizeof(b)); // 同样定义字符串缓冲输出流,绑定到字符数组b(以后输出到sout的东西都会进入数组b)
cin.getline(a,sizeof(a)); // 从标准输入(通常是键盘输入)获取一行输入(最多50个字符)
char ch=' '; // ch字符变量初始化为空格
int x; // 从输入流获取的一个整数
while(ch!='@') // 如果读取的字符是@,结束输入,否则一直到sin的结尾(最多50个字符)
{
if((ch>=48)&&(ch<=57)) // 判断字符ascii介于48与57之间,也就是数字0-9
{
sin.putback(ch); // 数字,ok 把这个字符还放入字符串缓冲输入流里
sin>>x; // 从sin读取一个整数(直到碰到非法字符),保存到x
sout<<x<<' '; // 把x输出到字符串缓冲输出流,也就是对应数组b里面
}
sin.get(ch); // 继续从sin,获取一个字符
}
sout<<'@'<<ends; // 最后结束在字符串缓冲输出流输入一个字符‘@’,与结束符
cout<<b<<endl; // 输出b里内容到标准输出--屏幕
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询