0

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

"
hello
dude
Sup
"

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

我怎样才能解决这个问题?

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

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

2 回答 2

1

首先, getch() 已被弃用(如果您开始遇到更多问题,则仅供参考)。据我了解,您一次尝试接受字符输入 1 个字符。如果您将 getch() 用于 '\n' 输入,则应该没问题。如果不是,请解释更多。

于 2012-07-09T22:21:23.377 回答
1

我只是尝试了一个快速的实验。显然getch()(正如里根所说,它已被弃用;改为使用)在您按下 时_getch()返回'\r',而不是。'\n'Enter

使用您当前的程序,尝试输入Ctrl-J而不是Enter; 那应该给你一个'\n'结果getch()

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

于 2012-07-09T22:32:15.257 回答