尝试在c++中读取一行键盘输入
Trying to Read a Line of Keyboard Input in C++
我正试图用c++完成一项大学作业,我在一个非常基本的操作上遇到了麻烦。我正试图从键盘上读取一串字符。这是相关代码:
string t;
cout << endl << "Enter title to search for: ";
getline(cin, t, 'n');
我明白,最后一行应该读取输入缓冲区(在本例中为cin)并将字符存储在't'字符串中,直到它到达一个新的行字符,然后继续程序流程。
然而,当我在XCode中运行我的代码时,它只是跳过getline
函数并将't'视为空字符串。
怎么回事?我试过使用cin >> t
,但那只是永远读取字符-为什么我不能得到这个行为?
输入操作明显被跳过的原因很可能是(这意味着,忽略了多bug的XCode IDE可能的特性)您之前执行了一些输入并且在输入缓冲区中留下了一个换行符。
要解决这个问题,请确保在逻辑上应该消耗一行输入的每个输入操作之后清空输入缓冲区。
一个简单的方法是总是使用getline
到string
,然后使用例如istringstream
,如果你想转换一个数字规格到数字类型。
干杯,hth。
从docs页面来看,你想要
cin.getline(t,256,'n');
这听起来像是Xcode运行程序的方式存在问题。尝试直接从终端运行您的程序,看看这是否足以解决您的问题。
相关文章:
- 物理键盘上的触发器按键
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 从C++dll访问C#中的一行主要参数
- 如何使用C/C++在MacOSX中获得键盘布局
- 在C++中,我如何接受不同于同一行的用户输入
- 如何从一行中读取特定数量的字符?(C++)
- 读取最后一行代码算法 - c++ 时出现问题
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 有没有办法在一行中填充矢量图
- 需要将一行代码从C++ Qt翻译成PyQt
- 视窗键盘输入 c++
- 为什么如果我添加这一行,我的程序会不断询问值
- 如何使代码打印文本文件中的第一行?
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- 如何在C++中以这种方式返回一行文本?
- 如何检查从键盘输入的特定整数值是否存在于C++文件中的一行或多行中
- 尝试在c++中读取一行键盘输入
- 用键盘输入数字到数组中,但只有一行