如何忽略第一个字符输入后的所有内容
How to ignore everything after the first character input
我想在用户输入的第一char
之后删除所有内容。
一切正常,但我正在处理边缘情况,如果用户键入某些内容,例如"nfff",则会导致两个函数发生,当"n"作为输入输入和"f"作为输入输入时。我知道这可以使用if (str[0] == 'n') { function() }
来解决,但我宁愿不使用更多的字符串内存。
有没有更有效的方法可以丢弃第一个字符之后的所有内容?
你可以使用 scanf 或 getchar。
例如
char my_char;
scanf("%c", &my_char);
因此,这将忽略第一个字符之后的所有内容。
#include <iostream> // std::cin, std::cout
#include <fstream> // std::ifstream
int main () {
char str[2];
std::cout << "Enter str ";
std::cin.get (str,2); // get c-string
std::cout <<str<<std::endl;
return 0;
}
使用 istream::get 来解决问题!大小为 2 将确保 str 以空结尾。
相关文章:
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 如何仅读取文本文件中的第一个值
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- OpenGL:第二个VBO破坏了第一个VBO
- 为什么第一个Dynamic_cast没有投射到基类?
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- C++ 为什么程序只读取第一个值
- 在我的第一个C++程序中需要一些帮助(简单)
- 为什么我的代码在第一个 if 语句处中断?
- 是否可以从另一个类对象调用一个类函数而不继承第一个类
- lldb/gdb 有什么问题,忽略 OS X 中的第一个 sleep() 语句?
- 我的第一个 cin 被忽略了,它只接受第二个
- Visual c++编译器忽略第一个if语句