我有一个可容纳单个字符的char指针。我想创建一个while循环,只要该字符不是'〜',它将继续运行。但是我似乎无法正确比较字符。

char *currChar;
while(currChar != '~') {
    //read();
    printf("Current Char:%c\n", currChar);
}


read将用户输入的最后一个值放入currChar。 printF将始终输出正确的信息(即,如果用户按下〜,则为〜),但是由于某种原因,他的while循环将永远不会退出。

如果我尝试执行while(* currChar!='〜')之类的操作,则会收到分段错误错误。

我该怎么做才能使它正常工作?

提前致谢。

最佳答案

您的char指针不包含单个字符。它指向内存中的单个字符。您需要在某个地方声明实际的char

例如。,

char currChar = ' ';  /* Initialize to something not '~' */
while( currChar != '~' ) {
    /* read().  If your read function requires a pointer, then provide &currChar. */
    printf("Current character: %c\n", currChar);
}


因此,您的代码的错误之处在于char *currChar;创建了未初始化的指针。该指针没有指向任何地方。您可以这样做:

char currChar = ' ';
char *currChar_ptr = &currChar;


现在您有了一个角色。并且您的指针指向该字符。

10-06 02:03