cin 和 cin.get 区别
字符数组输入中 cin >> char[i]; 和cin.get(char[i])的区别,特别是在'\n'这个字符。 问题点数:20、回复次数:8Top
1 楼languagec(各有所求)回复于 2005-05-12 21:33:56 得分 10
cin 是不会接收空白字符的,象空格,回车,tab等,
cin.get() 用于接收字符的时候,就相当与getchar() ,不会放过任何一个字符的
Top
2 楼flying_dancing(小混混-_-)回复于 2005-05-12 22:58:33 得分 0
#include <iostream>
using namespace std;
int main( )
{
char c[10];
c[0] = cin.get( );
cin.get( c[1] );
cin.get( &c[2],3 );
cin.get( &c[4], 4, '7' );
cout << c << endl;
}
//MSDNTop
3 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-05-12 23:07:45 得分 0
cin 是不会接收空白字符的,象空格,回车,tab等,
cin.get() 用于接收字符的时候,就相当与getchar() ,不会放过任何一个字符的
----------
同意。Top
4 楼llf_hust()回复于 2005-05-12 23:21:50 得分 0
同意Top
5 楼whyglinux(山青水秀)回复于 2005-05-13 09:18:33 得分 0
同意上面各位的说法。
cin.unsetf(ios_base::skipws);
这样设置之后,cin >> char[i]; 和 cin.get(char[i])行为就是相同的了。Top
6 楼alvachien(白衣战神,四大绝技:C#/C++/T-SQL/ABAP)回复于 2005-05-13 09:45:28 得分 10
cin是istream的对象,istream.get有几个重载函数。
1.get(char &ch)每次从输入流得到一个字符,包括空白字符,值放到ch。
2.get(),该函数直接返回字符值。
3.get(char *sink, streamsize size, char delimiter='\n'),其中sink是一个字符数组,size表示最大数目。delimit表示希望停止的字符。Top
7 楼Gascan(E域特种兵)回复于 2005-05-13 10:18:09 得分 0
#include<iostream>
#include<cctype>
using namespace std;
int main()
{
char ch;
cout<<"\nenter:\n";
cin.get(ch);
while('@'!=ch)
{
if(isupper(ch))tolower(ch);
if(islower(ch))toupper(ch);
if(isdigit(ch))goto next;
cout<<ch;
next: cin.get(ch);
}
return 0;
}
请问各位,为什么toupper和tolower两个函数不起作用??Top
8 楼alvachien(白衣战神,四大绝技:C#/C++/T-SQL/ABAP)回复于 2005-05-13 10:21:06 得分 0
tolower & toupper使用例子:
// locale_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc ( "German_Germany" );
char result1 = tolower ( 'H', loc );
cout << "The lower case of 'H' in the locale is: "
<< result1 << "." << endl;
char result2 = tolower ( 'h', loc );
cout << "The lower case of 'h' in the locale is: "
<< result2 << "." << endl;
char result3 = tolower ( '$', loc );
cout << "The lower case of '$' in the locale is: "
<< result3 << "." << endl;
}
Top




