不使用conio.h库就读取输入

时间:2014-08-22 10:51:02

标签: c++ getch

首先,我已经阅读了一些参考文献并用谷歌搜索了它。但是,如果不使用getch()按Enter键,我就无法找到任何读取输入的方法。而getchar() cin>> and getline()需要输入才能读取输入。我正在练习在线评委的问题,他们不接受conio.h图书馆。有没有办法做到这一点?感谢。

顺便说一句,我的目标是让每个数字都按下阵列。

2 个答案:

答案 0 :(得分:1)

istream& getline (istream& is, string& str),用法:

#include<iostream>
int main(){
    std::string output;
    std::getline(std::cin, output);
}

取自std::cin的一行存储在output中。您可以使用output阅读每个output[i]个字符,其中i是您想要获得的字符数,或者使用output.data(),它返回相同的数据,存储在char[]

每种方法都允许您将char作为一个字符阅读。看起来你想要一个数字作为数字,而不是作为字符。

char也是数字。每封信都有自己的代码。

char  code
 '0'==48
 '1'==49
 '2'==50
 '3'==51
 '4'==52
 '5'==53
 '6'==54
 '7'==55
 '8'==56
 '9'==57

正如您所看到的,数字一个接一个地设置得很漂亮,而关于n的数字更多也有更多关于n的代码。如何使用它?简单:只需在charchar48'0'减少{{1}}以获得更好的可读性,将数字作为数字。

答案 1 :(得分:0)

要阅读数字,只需使用std::cin,我就不明白为什么您不想按 Enter 来确认传递的数字。

当您在char之后读取char时,如果您想要更正部分输入的数字,则必须编写其他代码 - 您必须处理 Backspace ,箭头,删除,并且可能 Home 结束 Shift 与箭头结合使用时的行为......那是很多工作。