#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
int x,y;
char direction ;
char str1[10];
cout<<"Please enter the initial position of the bot";
cin>>x>>y;
cout << "\n\n";
cout << "enter initial direction in caps (F-forward,L-left,R-right)";
cin >> direction;
//cout << "chosen direction :" << direction ;
cout << "\n\n";
cout << "Enter the moves \n(Without space comma seperated in caps eg-F,L,L" ;
cin.get(str1,10);
cout << "entered moves :" << str1 << endl ;
return 0;
}
执行后: $ ./intern 请输入bot1 2的初始位置
以大写字母(F-forward,L-left,R-right)f
输入初始方向输入动作 (没有空格逗号分隔,例如-F,L,Lentered move:
KARPAGAVALLI @ Ashwin~ $
答案 0 :(得分:1)
这里有一个问题:在最后一个
之后cin >> direction;
流缓冲区中有一个额外的换行符'\ n',由下一个
读取cin.get(str1,10);
表示它没有被执行的“错觉”。实际上,str1
只是空字符串。
解决方案是使用
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
在cin.get(str1,10)
之前清除流(请注意,您必须#include <limits>
)。