我試圖讓一個簡單的軟件被要求輸入一個密鑰。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,這是第一次在這裏問問題。謝謝 –