最近剛好有朋友問了一個程式的小題目,
正好之前3月的問題,也和這個類似,
不過那時候沒時間,也 留到現在了。
1.cin 緩衝區問題:
參考:
http://hi.baidu.com/wingfy01/blog/item/b4b763b19b6ec8530923028a .html
http://hi.baidu.com/liuhaorancode/blog/item/7740ae1b5942381f 8618bf09.html
code:
加入 cin.ignore(1,' ');
str and str2 is char
cin . get ( str , 999 , '\n' );
cxList -> scan ( str );
cin . ignore ( 1 , ' ' );
cin . get ( str2 , 999 , '\n' );
cxList2 -> scan ( str2 );
2.strtok() 使用
參考:
http://www.cnblogs.com/oomusou/archive/2009/05/10 /c_strtok.html
http://www.cplusplus.com/reference/clibrary/cstring/strtok/
3.sstream stringstream 字串轉數字
參考:
http://topic.csdn.net/u/20090216/00/5cbfcce8-c9de-44b2-9909-cffcb6758410.html
http://www.csie.ntnu.edu.tw/~u91029/libtech.html
http://golineage.com/ShowSameTitleN/vc/29985.html
http://www.cplusplus.com/reference/iostream/stringstream/
4. 使用 vector
template < class T, class Allocator = allocator > class vector;
參考:
http://www.cplusplus.com/reference/stl/vector/
http://www.cnblogs.com/oomusou/archive/2008/03/22 /1117686.html
code:
#include
... 略 .
class cx_List{+
.. 略 ..
vector viValue;
void scan(char* str);
stringstream strStream;
.. 略 ..
void
cx_List :: scan ( char * str )
{
char * cp ;
int i = 0 , tmp = 0 ;
//cout << str << endl;
cp = strtok ( str , " " );
while ( cp != NULL )
{
//printf ("cp:%s\n",cp);
this -> strStream << cp ;
this -> strStream >> tmp ;
//cout << tmp << endl;
this -> viValue . push_back ( tmp );
cp = strtok ( NULL , " " );
this -> strStream . clear ();
i ++;
}
}
} ;