如何使getch()接受输入命中(\ n)?

时间:2012-07-09 22:11:51

标签: string visual-c++ getch

我用C ++编写了一个触控式控制台程序。 它从文件中读取文本并将其加载到屏幕上。 用户必须输入正确的字母才能继续下一封信。 我唯一的问题是'\ n', 所以如果我在文本文件(我正在阅读的文件)中有这样的东西:

"
hello
dude
Sup
"

用户输入“你好”后, 他应该按输入吧? 但每当他按输入时,getch()会将他带回当前行的开头。

我该如何解决这个问题?

我正在读取整个文件并将其存储到字符串中,如下所示:

void getTextFromFile()
{
    text.assign(istreambuf_iterator<char>(fin), istreambuf_iterator<char>());       
}

2 个答案:

答案 0 :(得分:1)

首先,不推荐使用getch()(如果你开始遇到更多问题,那就是一个FYI)。根据我的理解,你一次尝试接受1个字符的字符输入。如果你正在使用getch()来获得&#39; \ n&#39;输入你应该没事。如果没有,请解释更多。

答案 1 :(得分:1)

我刚试了一个快速的实验。显然getch()(正如里根所说,已弃用;使用_getch()代替)当您按 Enter 时,会返回'\r',而不是'\n'

使用当前程序,尝试键入 Ctrl-J 而不是 Enter ;这应该会从'\n'为您提供getch()结果。

为了将来参考,您应该向我们展示调用getch()的实际代码。我不知道你在评论中提到的currentLetter = getch();如何与问题中的代码相关。