读取未知行数c ++

时间:2013-09-28 23:51:48

标签: c++ input

我从Read an unknown number of lines from console in c++得到了我的问题的答案。但是,解决方案仍然不适合我。请帮我。这是我针对某些问题实施的完整代码。它的第一个块是读取多行的代码。

    #include<iostream>
    #include<string>
    #include<stdlib.h>
    #include<vector>

    using namespace std;

    int main()
    {
      vector<int> numbers;
      string line;
      int num = 0,rem = 0,count=0;
      while(getline(cin,line))
      {
       if(line.empty())
       {
//      cout<<"line check successful"<<endl;
        break;
       }
       numbers.push_back(atoi(line.c_str()));
      }
      cout<<endl;
      for(int i =0;i<numbers.size();i++)
      {
      num = numbers[i];
      for(int j=1;j<=num;j++)
      {
        while(j)
        {
            rem = j % 10;
            if(rem != 3 || rem !=7 || rem!=9)
            {
                j = j/10;
                continue;
            }
            count ++;
            j = j/10;
        }
    }
    cout<<count<<endl;
    count = 0;
}

}

它的第一部分是算法读取未知的行号。但是,在空返回时或按下只需输入而没有任何输入时,循环不会停止。你能指出哪里出错了吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

查看代码的这一部分:

for(int j=1;j<=num;j++)
{
  while(j)

while循环在j为0之前不会停止,然后它进入for循环并递增j,所以j现在为1,但是while循环再次运行直到j为0,所以你永远循环。 / p>