C 中的字符串输入

String Input in C++

本文关键字:输入 字符串      更新时间:2023-10-16
#include<iostream>
using namespace std;
int main()
{
  int a,b;
  cin>>a;
  cin>>b;
  cout<<" "<<endl;
  string c;
  getline(cin,c);
  int i=1;
  int s=0;
  while(c[i]!='')
  {
    if(c[i]=='1')
    {
      s+=a;
      a=a*a;
      i++;
    }
    else
    {
      a=a*a;
      i++;
    }  
  }
  int r=s%b;
  cout<<r;
  return 0;
}

在此代码中,我想以形式输入
5 100
101
但是代码以形式输入
5 100 101
一旦我输入A的值,B Integer和按Enter进行字符串的输入即可终止代码有人可以解释为什么会发生这种情况,以及我如何避免

getline命令仅在一行中抬头,并且会停止关注第一行的newline。当您按Enter时,将插入新线,因此Getline会停止查看。要以两行观察,然后将两行组合成一个字符串,您可以执行以下

  string c;
  string d;
  getline(cin, c);
  getline(cin, d);
  c = c + d;

一种替代方法是使用某些ProgrammerDude在他的评论中建议的内容,即忽略Newline。

注意:如果您想要100到101之间的空间,则可能需要在特定示例中的两行之间添加一个空间。

  string c;
  string d;
  getline(cin, c);
  c += " ";
  getline(cin, d);
  c = c + d;