如何在labwindows CVI中将文本打印到列表框中

问题描述 投票:0回答:1

h,我是学生和学习C编程,通过lab-windows CVI ..在GUI中我创建了文本框和列表框...我从文件到文本框和用户读取,搜索一个单词。 ..当它匹配时,它应该出现在列表框中的单词...我使用了一个字符单词(首先作为指针或数组)但是使用了一个关键字将单词放在列表框中,但是我得到错误:它指向char并期望char。我把它变成了简单的角色,但它抱怨它很小,即使我分配了...我希望你能解决我的问题..欣赏...`int i = 0,textLength; char str [80],word1 [25],word2;

static FILE *ifp;

switch (event)
{
    case EVENT_COMMIT:

        ifp = fopen ("text.txt", "r");
        while((fgets(str,80,ifp))!=NULL) {
            SetCtrlVal (panelHandle, PANEL_TEXTBOX, str);
            SetCtrlVal (panelHandle, PANEL_TEXTBOX, "\n");
            ++i;
    }
        rewind(ifp);
        GetCtrlAttribute (panelHandle, PANEL_STRING, ATTR_STRING_TEXT_LENGTH, &textLength);
        word2 = (char) malloc (sizeof(char) * (textLength + 1));  
        GetCtrlVal (panelHandle, PANEL_STRING, &word2); //argument too small using usual char

        while((fscanf(ifp,"%s",word1))!=EOF){
            if(strcmp(word1,&word2)==0){
                SetCtrlVal(panelHandle, PANEL_LISTBOX, word2); //get error, it is pointed to char and expect char (when *word2 or word[25]) ?!!
                if ((panel2 = LoadPanel (0, "ex1.1.1.uir", PANEL_2)) < 0)
                    return -1;
                DisplayPanel (panel2);
                SetCtrlVal(panel2,PANEL_2_TEXTMSG,"match found");
            }

        }
        break;`    
c labwindows
1个回答
0
投票

你将malloc的返回类型转换为char而不是char*(指向char的指针)。输入word2 = (char*) malloc (sizeof(char) * (textLength + 1));或完全避免施放。

© www.soinside.com 2019 - 2024. All rights reserved.