在cin这个对象里,有一个储存字符的流,可以想象成缓冲区,事实上是cin里封装的一个东西。当我们在程序上输入字符后,对象cin获得了我们输入的字符。例如获得abcd,然后再通过.get()把流里面的第一个字符去掉,赋给str1,这时,cin里储存的流的数据为bcd,而str1则获得了a。当我们再次运行str2 = cin.get()时,同理...
{string str1;string str2;string str3;getline(cin,str1);getline(cin,str2);str3=str1+str2;cout<<str3<<endl;system("pause");return 0;}我能不能将getline(cin,str1);getline(cin,str2);这两句用getline整合成一句话?还是说getline只能输入一个字符串?婷婷同学_ 浏览178回答2 2回答 长风秋雁 getl...
getline(cin,str1); cnt_num(str1); return 0; } void cnt_num(string str1) { int num_letter=0,num_num=0,num_space=0,num_other=0; for(int i = 0;i<str1.size();i++) { if ((str1[i]>='a' and str1[i]<='z') or (str1[i]>='A' and str1[i]<='Z')) num_letter...
5.cin.clear() cin>>发生错误输入的时候,failbit被设置为1,只有用clear()将failbit修改到原来的状态0,输入才得以继续。 注意输入的是"12*34制表78换行",抽取运算符号>>在碰到错误输出时候,该错误字符仍旧留在输入流中,否则最后输出的就是”8“了,这里cin.get()会抽取并从输入流中删去错误的输入字符,保证输入...
char str2; str1 = cin.get(); //读取单个字符,在屏幕输入 str2 = cin.get(); cout << str1 << str2 <<endl; //输出刚刚载入的单个字符 system("pause"); //进行暂停,否则会一闪而过 return 0; } 运行程序后 输入:abcd回车 输出:ab 既然cin.get()是读取第一个字符,那str2为什么不也是a呢...
cin>>str1; cin>>str2; cout<<str1<<endl; cout<<str2<<endl; return0; }测试一输入:abcd[Enter]efgh[Enter]输出:abcdefgh【分析】输入遇到回车符结束,很正常。测试二输入:abcd efgh输出:abcdefgh【分析】第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将后面的字符串给了第二个...
int main(){ string str1;while(std::getline(cin, str1))cout << str1 << endl;return 0;} 改成这样就行,std::getline()
cin.get(char* s, streamsize n)返回值:std::istream&链式编程:可以。例如:cin.get(buffer1, 100).get(buffer2, 100);示例:#include <iostream>int main() {char buffer1[100];char buffer2[100];std::cout << "Enter first line (up to 99 characters): ";std::cin.get(buffer1, 100).ignore...
cout<<str2<<endl; return 0;}测试一输入:abcd[Enter]efgh[Enter]输出:abcdefgh【分析】输入遇到回车符结束,很正常。测试二输入:abcd efgh输出:abcdefgh【分析】第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将后面的字符串给了第二个字符串。这证明了cin读入数据遇到空格结束;并且丢弃...
提取的最大字符数为 size – 1。 注意终止符(或分隔符)可以是任何字符(如' '、'、' 或任何特殊字符等)。终止符被读取但不保存到缓冲区中,而是由空字符替换。...// 用字符数组显示 getline() 的 C++ 程序 #include using namespace std; int main() { char str[20]...,语句 cin.getline(str, 20...