如何在第一个字符输入后忽略所有内容
Posted
技术标签:
【中文标题】如何在第一个字符输入后忽略所有内容【英文标题】:How to ignore everything after the first character input 【发布时间】:2020-06-03 00:58:11 【问题描述】:我想删除用户输入的第一个 char
之后的所有内容。
一切正常,但我正在处理边缘情况,如果用户输入例如“nfff”之类的内容,当输入“n”作为输入时和输入“f”作为输入时,将导致两个函数发生.我知道这可以使用if (str[0] == 'n') function()
解决,但我宁愿不要使用更多的内存与字符串。
有没有更有效的方法来丢弃第一个字符之后的所有内容?
【问题讨论】:
读取第一个字符,然后ignore
,直到你需要再次开始关注,例如在行尾……
如果您的目标是阅读一行文本,那么这就是std::getline
的用途。这就是它的工作。然后,如果您只想查看和检查第一个读取的字符,那么您完全可以随意进行。
您目前如何获得用户输入?
【参考方案1】:
您可以使用scanf 或getchar。
例如,
char my_char;
scanf("%c", &my_char);
所以,这将忽略第一个字符之后的所有内容。
【讨论】:
【参考方案2】:#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 以 null 结尾。
【讨论】:
以上是关于如何在第一个字符输入后忽略所有内容的主要内容,如果未能解决你的问题,请参考以下文章