我从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;
}
}
它的第一部分是算法读取未知的行号。但是,在空返回时或按下只需输入而没有任何输入时,循环不会停止。你能指出哪里出错了吗?提前谢谢。
答案 0 :(得分:2)
查看代码的这一部分:
for(int j=1;j<=num;j++)
{
while(j)
while循环在j为0之前不会停止,然后它进入for循环并递增j,所以j现在为1,但是while循环再次运行直到j为0,所以你永远循环。 / p>