#include <iostream>
#include<string.h>
#include<cstring>
#include<ctype.h>
using namespace std;
char *Data1[100];
char *operators[20];
char *identifiers[20][20];
int *ascii[100] = {0};
int ascii2[100] = {0};
unsigned int Tcount = 0;
unsigned int i;
int main(void)
{
char *text = (char*)malloc ( 100 *sizeof( char));
cout << "Enter the first arrangement of data." << endl;
cin.getline(text, 100);
char *token = strtok(text, " ");
while ( token != NULL )
{
token = strtok(NULL, " ");
Data1[Tcount] = token;
cout<< Data1[Tcount] << endl;
Tcount++;
}
for(i=0; i < Tcount; i++)
{
ascii[i] = (int)Data1[i];
//从指针转换为较小的类型&#39; int&#39;丢失信息错误
cout << ascii[i] << endl;
}
return 0;
}
我首先尝试将令牌存储在名为&#39; Data1&#39;的数组中。这样做时,我输入数据&#39; X = A + 1&#39;进入用户输入。由于某种原因,第一个令牌(X)没有存储在数组中,所以我的第一个问题是如何解决这个问题 其次,我试图使用存储在数组中的这些标记并将它们转换为ASCII,以便它们可用于解析。我收到一个错误&#34;从指针转换为较小的类型&#39; int&#39;丢失信息&#34; 我想知道是否有人知道如何解决这些问题,尤其是第一个问题。感谢。
答案 0 :(得分:0)
解决方案:
char data = (char)malloc ( 100*sizeof( char));
while ( token != NULL )
{
data[Tcount++] = *token;
token = strtok(NULL, " ");
for(i=0; i < (Tcount*2); i++)
{
ascii[i] = (int)data[i];
}
}
for(i=0; i < (Tcount); i++)
{
cout << ascii[i] << endl;
}
return 0;
}