c++ - 在cpp中加红一些输入行
问题描述
我正在尝试阅读以下输入:
1.第一行是一些自然数q;
2.next q行是'+'或'-'或'insert'+空格+somecharacter
由于空间的原因, cin 在这里当然不起作用,所以我尝试通过以下方式使用 getline:
int q;
cin>>q;
getchar();
while(q--){
string s;
getline(cin,s);
}
但以这种方式我无法读取第一行,如果我删除 getchar 我无法读取最后一行。问题可能是程序读取了一个额外的 '\n'(打印输入显示了这一点)。我怎么能解决这个问题?
解决方案
您不一定需要寻找空格,您可以先阅读,insert
然后再阅读:
int q;
cin>>q;
while(q--){
string s;
cin >> s;
if (s == "insert") {
char c;
cin >> c;
// do something with s == "insert", c == 'h'
} else {
// do something with s == "+" or s == "-"
}
}
推荐阅读
- python - 剪刀石头布游戏玩家2输入错误
- windows - 使用批处理脚本在文本文件中使用文件夹列表将只需要的文件夹复制到目标文件夹
- r - 用第二个数据帧中的相同行名替换第一个数据帧中的行
- salesforce - 如何在 Salesforce 中自定义 RemoteAccessAuthorizationPage?
- python - Python 检查网站状态是否正常,并返回响应时间
- javascript - 离子 SQLite ; 无法打开数据库
- logging - 如何使用 Terraform 11.14 启用 Azure Key Vault 日志记录?
- ios - 如何从 Firestore 返回数组中的数据?
- java - 如何启用单击按钮格式,并使用窗口增加文本大小
- python - 如何检查我的停用词删除算法是否有效?