这可能有点多余,但是在C ++中达到 tab 之前,是否有一个简短的/简单的字符串读取方法?与其他问题类似,但我想继续阅读,即使我打了一个空格。例如,如果STDIN是
Cute Kitty is fabulous as always
然后我想读Cute Kitty;是;一如既往的美妙,三次。 我见过人们用文件中的正则表达式来做这件事,但是你怎么用C ++中的stdin做到这一点?我想把它放在一个字符串类中,每当我尝试像
这样的东西时scanf("%s\t", &mystring);
它引发了一个错误,因为我没有使用字符数组。 谢谢,请保持答案足够容易让菜鸟理解。
答案 0 :(得分:3)
此代码似乎对我有用。它基本上获取用户通过stdin
输入的行,然后读取每个字符等待制表符(\t
)或行尾。
#include <iostream>
#include <string>
int main()
{
std::string a;
std::getline(std::cin,a);
int index_holder = 0;
for(std::string::size_type i = 0; i < a.size(); ++i)
{
if(a[i] == '\t' || (i == a.size() - 1)) {
std::cout << a.substr(index_holder, i - index_holder) << std::endl;
index_holder = i + 1;
}
}
return 0;
}
答案 1 :(得分:0)