输入输出流
输入
1. cin.get()
从缓存中读取一个字符,这里的cin也可以替换为其他的流,例如文件流ifstream
int get();
//只读取一个字符
istream& get(char& var);
//读取一个字符存到var中
istream& get( char* s, streamsize n );
/*读取一行,最大的个数为n,但是它不对换行符进行处理,需要单独接收换行符*/
istream& get( char* s, streamsize n, char delim);
/*同上,第三个参数为结束字符,后面的字符不进入缓存,但是最delim却任然在缓存当中,需要单独接收*/
istream &get( streambuf &buffer );
//读取字符到buffer中,直到碰到换行或EOF,streambuf一般用不到
istream &get( streambuf &buffer, char delim );
//或是读取字符到buffer中,直到碰到换行,EOF或delim。(相反, delim直到下一个get()不会被读取 ).streambuf一般用不到
2. cin.getline()
从缓存中读取一行 ,这里的cin也可以替换为文件流
istream &getline( char *buffer, streamsize num );
//读取一行字符到缓存当中,直到num - 1个字符已经读入,下面为代码示例
istream &getline( char *buffer, streamsize num, char delim );
//任意地读入,直到读到字符delim为止。delim字符不会被放入buffer中,碰到一个换行标志,碰到一个EOF标志会自动结束
代码示例:判断文件内的数字字母字符的个数
ifstream infile;
infile.open("test.txt",ios::in);
char* s=new(char);
int num=0,alpha=0,other=0,k;
while(infile.getline(s,100)){
//这里是读取的核心,同样判断结束可以可以加入第三个参数
cout<<s<<endl;
for(k=0;k<strlen(s);k++){
if(isdigit(s[k]