c++是两个相同的字符串
c++ are two strings the same?
我正在尝试制作一个要求输入密钥的简单软件。
我使用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;
}
通过调用cin.get()
,可以使用cin
中的第一个字符。您需要将其存储在某个位置,并将其附加到getline
的结果中。
相关文章:
- 两个字符串在 c++ 中不相等
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 将字符串拆分为标记,并将标记拆分为两个单独的数组
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- 比较两个字符串后卡在无限循环中
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 使用XOR查找O(n)-解决方案中的两个字符串是否为变位符
- 如何将字符串和整数读取到两个单独的动态数组中的程序编写?
- 如何将两个字符串加在一起,就好像它们是变量一样?
- 我需要帮助在一个类中输入两个字符串并获取其输出
- 这两个C++语句连接字符串有什么区别?
- 两个字符串之间的数学运算
- 使用 SET(C++) 检查两个给定字符串是否是字谜时出现运行时错误
- 有没有办法我可以在 C++ 中使用 if 语句来说明如果一个字符串不是两个名称的 eqal,它会给出一个输出,ATM i
- 如何在 main 函数中输出两个新字符串C++?
- sscanf() 有两个字符串参数
- 我的字符串数组一次打印出前两个字符串
- 两个 c++ 字符串上的异或
- 函数返回两个字符串的第一个常用字符
- 目标是找到两个 c 字符串之间的公共前缀(必须使用特定的函数标头)