c ++单独获取字符,包括空格

c++ Get chars individually including spaces

假设我们有这段代码:

char nextChar;
std::string nextTerm;
bool inProgram = true;
while (inProgram)
{   
    std::cin.get(nextChar);              
    while (nextChar != ' ')
    {             
        nextTerm.push_back(nextChar);             
        std::cin.get(nextChar); 
    }
    //Parse each term until program ends
}

基本上我的目标是单独获取每个字符并添加到字符串 (nextTerm),直到遇到 space,然后停止解析该术语。这似乎只是跳过 spaces 并在输入两个单词时直接从后面的单词中获取字符。这看起来很简单,但我无法弄清楚。感谢帮助。

编辑: 结果是 get 没有跳过 spaces,这是我程序后面的一个问题导致它们合并。感谢大家的评论和帮助。

我可以想到以下方法来解决问题。

  1. 在内部 while 循环之前清除 nextTerm

    char nextChar;
    std::string nextTerm;
    bool inProgram = true;
    while (inProgram)
    {
       // Clear the term before adding new characters to it.
       nextTerm.clear();
    
       std::cin.get(nextChar);              
       while (nextChar != ' ')
       {             
          nextTerm.push_back(nextChar);             
          std::cin.get(nextChar); 
       }
       //Parse each term until program ends
    }
    
  2. nextTerm 的定义移到外部 while 循环中。

    char nextChar;
    bool inProgram = true;
    while (inProgram)
    {   
       // A new variable in every iteration of the loop.
       std::string nextTerm;
    
       std::cin.get(nextChar);              
       while (nextChar != ' ')
       {             
          nextTerm.push_back(nextChar);             
          std::cin.get(nextChar); 
       }
       //Parse each term until program ends
    }