Tokenizer仅打印第一个令牌

时间:2015-05-08 13:49:50

标签: c tokenize c-strings

我在构建标记器时遇到问题。我是c ++的新手,想知道是否有人可以提供帮助。

当我运行程序时,我输入用户输入为" x = a + 1"。当我这样做时,唯一的标记输出是x。我想显示"x\n = a\n +\n 1\n"

#include <iostream>
#include <string>
using namespace std;

int main(void)
{

 char *text = (char*)malloc ( 40 *sizeof( char ));
 cout << "Enter the first arrangement of data." << endl;
 cin >> text;
 char *token = strtok(text, " ");
 while ( token )
 {
     if ( strlen(token) > 0 )
     {
        printf(" %s", token);
     }
     token = strtok(NULL, " ");
 }
 return 0;
}

1 个答案:

答案 0 :(得分:0)

您没有阅读整个输入。

更改

cin >> text;

cin.getline(text, 40);