我在构建标记器时遇到问题。我是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;
}
答案 0 :(得分:0)
您没有阅读整个输入。
更改
cin >> text;
到
cin.getline(text, 40);