我试图让一个简单的软件被要求输入一个密钥。C++是两个字符串相同吗?
我用fstream
打开txt
文件,其中包含一个数字列表。我把string array import_n
,然后我定义了一个字符串,说user_input
。我使用getline(cin, user_input)
来获取用户输入。 if user_input == import_n
,表示用户输入了正确的数字,并且比较成功。
这工作正常。问题是,当程序要求用户输入号码,然后按回车键,它就像我输入正确的号码一样继续。有没有办法解决这个问题?
注:
我试图
if (cin.get() == '\n') {continue;}
但这个问题是
1:当用户输入的号码,我按进入它的再次重复,即使数量是正确的
2:
if(cin.get() == '\n'){cout <<"you press enter";}
else getline(cin, user_input);
这里的问题是,它跳过的user_input
代码中的第一个数字:
string user_input = "";
string g;
string il_[ar_n +1];
string wa[na];
string w1 ="array";
string w2 ="_";
for (int n = 1, i = 0; i < na; i++, n++)
{
stringstream c;
c << n;
wa[i] = c.str();
}
string w4 =".txt";
string w5 ;
cout << "enter number : " ;
getline(cin, g);
//cin.ignore();
getline(cin, user_input);
for (int ifo =0 ; ifo< na ; ifo++) // na -1
{
w5 = w1 + w2 + wa[ifo] + w4;
ifstream inp(w5);
if (!inp)
{
continue;
}
int i = 0;
while (!inp.eof())
{
getline(inp, il_[i]);
i++;
}
i = i-1;
int ic =0 ;
while (ic < i+1)
{
if (user_input == il_[ic])
{
f = true;
break ;
}
else
ic++;
}
if (f)
{
inp.close();
return true;
}
inp.close();
}//end for loop
cout <<"\ninvalid number!";
return false;
}
请多花点努力,正确地设置你的解释和代码。 –
'for'循环还有什么?目前,它似乎没有末端大括号,因此代码中可能有任何内容。请将代码写入MCVE([如何创建一个最小,完整和可验证的示例?](http://stackoverflow.com/help/mcve)) - 这样做可以帮助我们比当前更好的帮助所示。 –
对不起,代码不遵循MCVE,这是第一次在这里问问题。谢谢 –