精华内容
下载资源
问答
  • #include #include #include using namespace std; int main() {  int count;  cin>>count;  string s;  string temp;  cin.ignore();  for(int i=0;i  {  getline

    #include <iostream>
    #include <string>
    #include <stdio.h>
    using namespace std;


    int main()
    {
        int count;
        cin>>count;
        string s;
        string temp;
       
    cin.ignore();
        for(int i=0;i<count;i++)
        {
            getline(cin,temp);
            s.append(temp);
        }
        cout<<s;
        return 0;
    }


    这样就可以在循环中多次输入了,因为在程序中输入换行将导致结束。




    展开全文
  • 程序如下: ``` #include #include using namespace std; int main() { char word[20];... cin>>word;... while(strcmp(word,...对于while循环体中部分不是很理解,cin是怎么判断下一个字符串cin不是会忽略空格吗?
  • 在做一道题 依次输入每个人名字然后输入成绩,每个名字后面都跟着每个人成绩,不是把人名输完再输成绩。 然后要求统计每个人几次成绩和,依次输出每个人...第二次循环的时候n还是第一次输入名字,这个怎么办
  • 关键字: break 作用:跳出整个循环体 continue 作用:跳出此循环,开始循环体的下一个循环 void Test_func(filename) { while(cin.get(ch)) { statement 1; if(ch == '\n') continue; //执...

    关键字:

    1. break
      作用:跳出整个循环体
    2. continue
      作用:跳出此循环,开始循环体的下一个循环
    void Test_func(filename)
    {
         while(cin.get(ch))
         {            
               statement 1;
              if(ch == '\n')
              continue;     //执行后回到while(ch = fget(ch))
              statement 2;
         }
         statement 3;
    }
    void Test_func(filename)
    {
         while(cin.get(ch))
         {            
               statement 1;
              if(ch == '\n')
              break;     //执行后跳转执行 statement 3
              statement 2;
         }
         statement 3;
    }
    Hope this blog can really help you !
    
    thank you for watching  ^_^~~~
    
    展开全文
  • 例:读入键盘输入数,对其求和,当输入0时表示输入结束 Void main() {  int num=0,n;//使用while(true)为... //当用户输入0时,通过break语句跳出(中断)循环,继续执行循环后面(循环体之外)语句。 n

    例:读入键盘输入的数,对其求和,当输入0时表示输入结束

    Void main()

    {

      int num=0,n;//使用while(true)为永久循环(也就是循环条件永远为true)读入数

    while(true )

    {

    cout<<”请输入整数(输入0时表示结束)”<<endl;

    cin>>n;

    if(n==0)  break; //当用户输入0时,通过break语句跳出(中断)循环,继续执行循环后面(循环体之外)的语句。

    num+=n;

    }

    cout<<”和为”<<num<<endl;

    }

    C++ switch case语句讲解

     

    switch语句。它能够很简捷地描述出多岔路口的情况。具体的语法格式为:

    switch(表达式)
    {
       case 常量表达式1:                                  
       {
          语句块1;
          break;
       }
       ……
       case 常量表达式n:
       {
          语句块n;
          break;
       }
       default:
       {
          语句块n+1;
       }
     }

    在switch语句中的四个关键词分别是switch,case,default和break。

    Switch是语句的特征标志;case表示当switch后的表达式满足某个case后的常量时,运行该case以后的语句块(任意两个case后的常量不相等,否则switch不知选择哪条路径继续执行);default表示当没有匹配的case时,默认default运行它之后的语句;break表示退出switch语句。

     

    例:编写一个四则乘除运算的计算器

    #include"stdafx.h"

    #include<iostream>

    usingnamespace std;

     

    int_tmain(int argc, _TCHAR* argv[])

    {

           float a, b;

           char oper;

           cout <<"请输入一个表达式(如:a+-*/b)"<< endl;

           cin >> a >> oper >> b;

           switch (oper)

           {

           case '+':

           {

                                cout << a<< oper << b <<"="<< a + b << endl;

                                break;

           }

           case '-':

           {

                                cout << a<< oper << b <<"="<< a - b << endl;

                                break;

           }

           case'*':

           {

                            cout << a << oper << b<< "=" << a*b << endl;

                            break;

           }

           case'/':

           {

                            if (b != 0)

                            {

                                   cout << a << oper << b<< "=" << a / b << endl;

                            }

                            else

                            {

                                   cout << "ERROR" <<endl;

                            }

                            break;

           }

           default:

                  cout << "输入有误" << endl;

                  break;

           }

           return 0;

    }


    展开全文
  • 最近写了个弱智程序,找最大公约数(GCD,Greatest Common Divisor)。目前还未能分清楚数据封装和数据抽象异同点,但是仍然可以实践。...而主程序主体被写在一个do while循环体中,需要在每次

    最近写了个弱智程序,找最大公约数(GCD,Greatest Common Divisor)。目前还未能分清楚数据封装和数据抽象的异同点,但是仍然可以实践。具体所作就是把类的数据(存放数字的变量)和关键成员函数(具体算法)藏起来,把构造函数和析构函数暴露出去,用于在主程序中进行操作(作为接口)。

    因为这个类很简单,给它俩数,它告诉你GCD,于是不必废话,直接在构造函数中调用算法,然而在调用算法之前需要执行输入数据的检查,否则会出现意想不到的可笑错误。而主程序的主体被写在一个do while循环体中,需要在每次执行后对屏幕进行询问,根据屏幕输入的结果进行判断是否跳出循环结束主程序。

    在C++中输入普遍使用标准输入流cin,在本实践中,使用到了几个常用函数来完成输入判断

    cin的缓冲区

    cin的输入会进入到一个缓冲区内进行存储,遵循LILO原则,而cin会以制表符,空格键和回车作为输入分隔符。

    #include <iostream>
    using namespace std;
    
    int main(){
    
    	while(1){
    
    		cout << "Say something to me! " << endl;
    
    		char input[100];
    
    		cin >> input;
    
    		cout << input << endl;
    
    	}
    
    	return 0;
    
    }
    

    此例测试结果如下:

    Say something to me!
    Where is my space???
    Where
    Say something to me!
    is
    Say something to me!
    my
    Say something to me!
    space???
    Say something to me!
    
    

    若要解决这个问题,可以用到cin.getline()成员函数,该函数可以读取整行输入,并且可以指定分隔符,默认为回车。

    cin.fail()

    cin会对输入数据与流入变量的数据类型进行检查,当出现错误时,cin.fail()会返回真。

    cin.clear()

    cin.clear()的功能是清除cin.fail()的错误状态。由于输入检查与重新输入往往放在一个循环体中,若不进行归位,会导致死循环。cin.fail()与cin.clear()的使用实例在下述例程中类的构造函数中展示。

    在学习初期,我将cin.clear()的功能误以为是清除缓冲区数据,实则不然。这是我的第一个混淆点。

    cin.ignore(1000,’\n’)

    cin.ignore()的功能才是清除缓冲区数据,或者是忽略缓冲区数据。第一个参数是忽略的字节数,第二个数据是指定的忽略行为停止的字符。若输入"qwerty\n",指定忽略3个字符,则"rty\n"会流入下一次cin指定流入的变量,若指定忽略1000个字符,则忽略到’\n’后为止,不会对下一次输入行为产生影响。

    在混淆cin.clear()时,我误以为这是限定下一次cin只读取前几个输入字节而忽略后续字节的意思。

    例程

    以下为例程:

    #include <iostream>
    using namespace std;
    
    class GCD{
    private:
    
    	int tempG;	//较大数
    	int tempS;	//较小数
    	int tempM;	//余数
    
    	int num1;	//存放输入数字
    	int num2;
    
    	int gcd;	//存放最大公约数
    
    	//成员函数 计算最大公约数
    	void Euclidian();
    
    	//成员函数,显示计算结果
    	void display();
    
    public:
    
    	GCD(void);				//构造
    	virtual ~GCD(void);		//析构
    	
    };
    
    //构造时执行输入判断、计算以及结果输出
    GCD::GCD(void){
    	cout << "Please enter two positive integer numbers. Seperate them using tab, space or return:" << endl;
    	cin >> num1 >> num2;
    
    	while ((num1 < 1) || (num2 < 1) || (cin.fail()))
    	{
    		cout << "Please enter two POSITIVE integer NUMBERS!" << endl;
    		cin.clear();			//清除错误状态
    		cin.ignore(100, '\n');		//忽略前序输入
    		cin >> num1 >> num2;
    	}
    	if (num1 > num2){
    		tempG = num1;
    		tempS = num2;
    	}
    	else{
    		tempG = num2;
    		tempS = num1;
    	}
    		Euclidian();
    		display();
    }
    
    //析构以释放内存
    GCD::~GCD(void){}
    
    //成员函数,计算最大公约数
    void GCD::Euclidian(){
    	do{
    
    		tempM = tempG % tempS;
    		tempG = tempS;
    		tempS = tempM;
    
    	} while (tempM != 0);
    
    	gcd = tempG;
    }
    
    //成员函数,显示结果
    void GCD::display(){
    	cout << "The greatest common divisor of " << num1 << " and " << num2 << " is: " << gcd << endl;
    	cout << "--------------------------------------------------------" << endl;
    }
    
    int main(){
    	char f;
    	do{
    		GCD obj;
    		obj.~obj();
    
    		cout << "Do you wish to continue? (Y/N)" << endl;
    		cin >> f;
    
    		int ff = 0;
    
    		do{
    			switch (f){
    			case 'Y':
    				ff = 0;
    				continue;
    			case 'N':
    				ff = 0;
    				continue;
    			default:
    				cout << "You are so bad! (Y/N)" << endl;
    				ff = 1;
    				//cin.clear(); 此处并未对cin.fail()进行判断,不用使用cin.clear()
    				cin.ignore(1000, '\n');
    				cin >> f;
    			}
    		} while (ff == 1);
    
    	} while ( f == 'Y');
    	return 0;
    }
    

    测试结果如下

    Please enter two positive integer numbers. Seperate them using tab, space or return:
    1232 232
    The greatest common divisor of 1232 and 232 is: 8
    --------------------------------------------------------
    Do you wish to continue? (Y/N)
    what if i mess with you				//主程序中对输入的判断
    You are so bad! (Y/N)
    Y
    Please enter two positive integer numbers. Seperate them using tab, space or return:
    gs 2						//构造函数对输入的判断
    Please enter two POSITIVE integer NUMBERS!
    -2 7						//构造函数对输入的判断
    Please enter two POSITIVE integer NUMBERS!
    23232116 2322
    The greatest common divisor of 23232116 and 2322 is: 2
    --------------------------------------------------------
    Do you wish to continue? (Y/N)
    N
    Press any key to continue . . .
    

    后续问题

    Please enter two positive integer numbers. Seperate them using tab, space or return:
    111111111111111111111111111111111 1
    Please enter two POSITIVE integer NUMBERS!
    1111111111111 6
    Please enter two POSITIVE integer NUMBERS!
    111111111111 6
    Please enter two POSITIVE integer NUMBERS!
    11111111111 6
    Please enter two POSITIVE integer NUMBERS!
    1111111111 6
    The greatest common divisor of 1111111111 and 6 is: 1
    --------------------------------------------------------
    Do you wish to continue? (Y/N)
    Ndfsdfsdfs
    Press any key to continue . . .
    

    数据超长;无法实现对该次Y/N判断的识别。

    展开全文
  • 应该这样认为,while循环让cin.get从之前留下来的输入流一个一个读字符包括回车等(读到回车让while终止,也就不再运行cin.get),如果恰好让while循环体里面的cin.get读到这个回车,而缓冲区又没有输入队列了,...
  • ![代码所要解决题]...甚至于,如果在while循环体中,加入任意打印语句(如换行符,空格,制表符等等),都可以使程序不卡死,求解 _(我知道解这道题有更简单方法,但是我想知道这种写法卡死原因,谢谢大佬)_
  • C++大多数语句都以分号结束 表达式ival+5,末尾加上分号变成表达式语句 1 空语句 最简单语句是只有一个分号空语句 ... // while 循环体是空语句,会产生无限循环 ++iter;// 递增运算不属于循环一部分 2
  • 练习6.48

    2018-08-17 15:45:00
    6.48:说明下面这个循环的含义,它对assert的使用合理...Ans:当输入的string对象的值不为空,接着判断是否等于某个阈值,则执行循环体中的内容,最后,当调试器打开后,判断cin输入流中是否为空,若为空则输出信息...
  • c++实现对每一行输入数据运算

    千次阅读 2016-11-01 19:15:30
    例题:输入数据每行包含若干个以空格隔开整数,输出每行所有整数之和。 #include ... while(getline(cin,line)){//此处每次读完一行才进行判断,然后进入循环体 int sum = 0,x; stringstrea
  • 1.break语句:直接跳出当前循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试  continue语句:导致最近循环语句当次迭代提前结束。 Questionable Examples 1. string s1,s2; ...
  • C++ Primer 5e chapter 1

    2015-08-18 20:41:08
    1、C++每个表达式都有一个计算结果;cin,cout返回值是...while 判断,执行循环体;for,判断,执行循环体,递增循环变量; 3、流 stream 当作 if或while判断时; 4、重定向技术, exe outfile,当前目录
  • 程序经常需要执行重复性操作,为此C++提供了3种循环结构:for循环、while循环和dowhile循环。这些循 环必须知道何时终止,C++关系操作符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符 地读取和...
  • 程序经常需要执行重复性操作,为此C++提供了3种循环结构:for循环、while循环和dowhile循环。这些循 环必须知道何时终止,C++关系操作符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符 地读取和...
  • 程序经常需要执行重复性操作,为此C++提供了3种循环结构:for循环、while循环和dowhile循环。这些循 环必须知道何时终止,C++关系操作符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符 地读取和...
  • 程序经常需要执行重复性操作,为此C++提供了3种循环结构:for循环、while循环和dowhile循环。这些循 环必须知道何时终止,C++关系操作符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符 地读取和...
  • 5.5.1 使用原始的cin进行输入 5.5.2 使用cin.get(char)进行补救 5.5.3 使用哪一个cin.get( ) 5.5.4 文件尾条件 5.5.5 另一个cin.get( )版本 5.6 嵌套循环和二维数组 5.6.1 初始化二维数组 5.6.2 使用二维数组...
  • 我们可以发现这个while循环貌似没有结束条件。其实,它是有结束条件,只不过看起来没有,它是如何结束呢?当输入错误或者遇到输入了文件结束符时,它会自动跳出循环体。所以,看程序不能仅仅看到表面语法。在...
  • C++ 易混淆细节总结

    2017-11-21 11:26:39
    while (n- -) 可看成是先判断n,在把n减减后执行循环体中的内容 #include &lt;iostream&gt; using namespace std; int main() { int n; cin &gt;&gt; n; cout &lt;&lt; endl; ...
  • C++Primer第五版 6.5.3节练习

    千次阅读 2015-09-16 07:10:25
    练习6.47:改写6.3.2节(第205页)练习使用递归输出vector内容程序,使其有条件地输出与执行过程有关信息。例如,每次调用时输出vector对象大小。分别在打开和关闭调试器情况下编译并执行这个程序。练习...
  • 14.3 break和continue语句在循环体中的应用 151 14.3.1 break语句 151 14.3.2 continue语句 151 14.4 程序举例 152 习题 154 第15章 函数 157 15.1 函数的嵌套调用 157 15.2 函数的递归调用 160 15.3 带...
  • 3.5.4 字符数据在内存中的存储形式及使用方法 41 3.5.5 字符串常量 41 3.5.6 符号常量 42 3.6 变量赋初值 42 3.7 各类数值型数据之间的混合运算 43 3.8 算术运算符和算术表达式 44 3.8.1 C运算符简介 44 3.8.2 算术...
  • 3.5.4 字符数据在内存中的存储形式及使用方法 41 3.5.5 字符串常量 41 3.5.6 符号常量 42 3.6 变量赋初值 42 3.7 各类数值型数据之间的混合运算 43 3.8 算术运算符和算术表达式 44 3.8.1 C运算符简介 44 3.8.2 算术...
  • C++ Primer Plus 中文版 第4版 清晰版

    千次下载 热门讨论 2009-12-06 14:45:21
    5.5.1 使用原始的cin进行输入 127 5.5.2 使用cin.get(char)进行补救 128 5.5.3 使用哪一个cin.get() 129 5.5.4 文件尾条件 129 5.5.5 另一个cin.get() 131 5.6 嵌套循环和二维数组 133 5.6.1 初始化二...
  • 3.5.3 字符数据在内存中的存储形式及其使用方法 3.5.4 字符串常量 3.6 变量赋初值 3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.8.1 C运算符简介 3.8.2 算术运算符和算术表达式 3.9 赋值...
  • do…while循环: int n = 100; do { n += 2; } while(n ); 2-14 if ( x = 3 ) 和 if (x = = 3) 这两条语句差别是什么? 解: 语句if(x = 3)把3赋给x,赋值表达式值为true,作为if语句条件;语句if(x == 3)...
  • 整个报数环节在主函数中体现在一个while循环上,而跳出这个循环的条件便是对队列中人数的判断,即当队列中的人数只剩下一个时,跳出此循环。 /////////////////////////////////////////////////// 具体源程序如下...
  • 256 C++允许在函数体中说明变量 257 理解存储类型 258 理解静态变量 259 定义全局静态变量 260 在程序中定义静态变量 261 创建自己变量类型:typedef关键字 262 理解变量作用域 263 理解左值(1value) 264 理解...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

while循环体中的cin