Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何让getline操作员工作?_C++_Getline - Fatal编程技术网

C++ 如何让getline操作员工作?

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

所以在前面的一个问题中,我被告知添加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 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 < /代码>中读取,并存储在Loo> <代码>中。你必须从那里提取它。

cin >> Choice;
为此:

Choice = line[0];


这都是比较基本的C++,我建议你拿起一个.< /p> < Angew是正确的,但是你在你的while循环中也没有使用任何一个线。而且,如果用户只是输入数字,你不需要GETLIN。你可以使用<代码> CIN >选择;< /Calp>

< P> Angew是正确的,但是你没有任何东西利用你的线。同时,如果用户只输入数字,你就不需要GETLIN。你可以使用<代码> CIN >选择;< /Cord>< /P>你不需要等待输入就可以读取一个击键,对吧?首先,不要把旧的C风格的STDIO和C++流混在一起。它可能不按你想要的方式工作。首先,不要把旧的C风格的STDIO和C++流混合起来,这可能不像你希望的那样工作。