首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输入输出流解决思路

2012-03-29 
输入输出流char str[]123 456istrstream ins (str)char chinsch这里是将数组内的字符一个一个读

输入输出流
char str[]="123 456";
istrstream ins (str);
char ch;
ins>>ch;
这里是将数组内的字符一个一个读出,如果我现在想读出一个数字23,请问该如何做,还有就是数组内的空格能读出吗

[解决办法]
char str[]="123 456";
istrstream ins (str);
int num;
ins>>num;//读出第一个数字123;

但是不能只读出23。如果想只读出23就用c语言的函数。sscanf();

[解决办法]
可以的,记住C++输入流的特性,从当前流指针读取到下一个空格或者其他空白符.
按照你的需求:

C/C++ code
#include "stdafx.h"#include   <strstream> #include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){    char str[]="123 456";    istrstream ins(str);    char c;    int num;    ins>>c;    ins>>num;    cout<<c<<endl;    cout<<num<<endl;    return 0;}
[解决办法]
不推荐 <strstream> 
使用 <sstream> 

C/C++ code
#include <iostream>#include <sstream>using namespace std;int main(){    char str[] = "123 456";    stringstream ins(str);    string line;    while (getline(ins, line)) {        for (size_t i = 0; i != line.size(); i++) {            cout << line[i]  << endl;        }    }    return 0;}
[解决办法]
C/C++ code
#include <iostream>#include <sstream>#include <string.h>using namespace std;int main(){    string str = "123 456\nHello World!\n"                 "#include <sstream>\n";    stringstream ins(str);    char line[255];    while (ins.getline(line, 255)) {        for (size_t i = 0; i != strlen(line); i++) {            cout << line[i]  << " ";        }        cout << endl;    }    return 0;} 

热点排行