C++ 如何让getline操作员工作?
所以在前面的一个问题中,我被告知添加getline,这样用户就可以对cin操作符只使用一个字符。这是我的节目:C++ 如何让getline操作员工作?,c++,getline,C++,Getline,所以在前面的一个问题中,我被告知添加getline,这样用户就可以对cin操作符只使用一个字符。这是我的节目: #include <iostream> #include <stdio.h> #include <cstdio> #include <cstdlib> char Choice; char my_name; using namespace std; int main() { printf("You come out of d
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <cstdlib>
char Choice;
char my_name;
using namespace std;
int main()
{
printf("You come out of darkness.\n");
printf("Confused and tired, you walk to an abandoned house.\n");
printf("You walk to the door.\n");
printf("What do you do?\n");
printf("1. Walk Away.\n");
printf("2. Jump.\n");
printf("3. Open Door.\n");
printf(" \n");
string line;
getline(cin, line);
while(line.size() != 1)
{
printf(" \n");
cout<<"Please enter one single number!\n";
printf(" \n");
getline(cin,line);
}
cin >> Choice;
printf(" \n");
if(Choice == '1')
{
printf("The House seems too important to ignore.\n");
printf("What do you do?\n");
printf("1. Jump.\n");
printf("2. Open Door.\n");
printf(" \n");
cin >> Choice;
printf(" \n");
}
}
#包括
#包括
#包括
#包括
字符选择;
查我的名字;
使用名称空间std;
int main()
{
printf(“你从黑暗中走出来。\n”);
printf(“困惑和疲惫,你走向一所废弃的房子。\n”);
printf(“你走到门口。\n”);
printf(“您是做什么的?\n”);
printf(“1.走开。\n”);
printf(“2.跳转。\n”);
printf(“3.开门。\n”);
printf(“\n”);
弦线;
getline(cin,line);
while(line.size()!=1)
{
printf(“\n”);
不能选择;
printf(“\n”);
如果(选项='1')
{
printf(“房子似乎太重要了,不容忽视。\n”);
printf(“您是做什么的?\n”);
printf(“1.跳转。\n”);
printf(“2.开门。\n”);
printf(“\n”);
cin>>选择;
printf(“\n”);
}
}
但是当我运行程序时,它会通过,我输入12,然后会说“请输入一个数字!”,但是如果我只输入1,那么什么也不会发生
程序有什么问题?运行getline()
后,您输入的1
已从cin
读取,并存储在line
中。您必须从那里提取它。替换此项:
cin >> Choice;
为此:
Choice = line[0];
这是比较基础的C++;我建议你在<代码> GETLION()/Cux>运行之后,<>代码> 1代码>代码> >已经从<代码> CIN < /代码>中读取,并存储在
为此:cin >> Choice;
Choice = line[0];
这都是比较基本的C++,我建议你拿起一个.< /p> < Angew是正确的,但是你在你的while循环中也没有使用任何一个线。而且,如果用户只是输入数字,你不需要GETLIN。你可以使用<代码> CIN >选择;< /Calp>
< P> Angew是正确的,但是你没有任何东西利用你的线。同时,如果用户只输入数字,你就不需要GETLIN。你可以使用<代码> CIN >选择;< /Cord>< /P>你不需要等待输入就可以读取一个击键,对吧?首先,不要把旧的C风格的STDIO和C++流混在一起。它可能不按你想要的方式工作。首先,不要把旧的C风格的STDIO和C++流混合起来,这可能不像你希望的那样工作。