gpt4 book ai didi

放置 cin.get 后关闭 C++ 控制台

转载 作者:太空狗 更新时间:2023-10-29 20:04:17 26 4
gpt4 key购买 nike

我正在编写一个将米转换为英尺的基本程序

// TestApp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
# include <iostream>


int main()
{
using namespace std;

double feet;
short int input;
const double feettometer = 3.28 ; (changed after second comment, small mistake)

cout << "Enter meter value: ";
cin >> input;

feet = feettometer * input ;

cout << "your meter value of " << input << " in feet is " << feet ;
cin.get();

return 0;
}

为什么这个 con.get() 不能让控制台保持事件状态?

最佳答案

当您输入像 123 这样的数字并按下回车键时,输入流中就有 123\n。当您提取到 input 时,123 会被删除,\n 会留在流中。然后当你调用 cin.get() 时,这个 \n 被提取出来。它不需要等待任何输入,因为这个字符已经在那里等待被提取。

因此,一种解决方案是在执行 get 之前使用 ignore 清除输入流:

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

这将提取并丢弃流中直到并包括下一个 \n 的所有内容。因此,如果您的输入是 123hello\n,它甚至会丢弃 hello

另一种方法是使用 std::getline 读取输入行(这也将提取 \n)并然后解析输入数字的行。

关于放置 cin.get 后关闭 C++ 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20882726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com