其奈公何 发表于 2021-12-17 11:28:19

这个程序为何运行不了

#include <stdio.h>
#define MAX 1024

int main()
{
        char a;
        char *b = a;
        int i = 0, j;
       
        while ((j = getchar()) != '\0')
        {
                *b++ = j;
        }
       
        *b = '\0';
       
        printf("%s", a);
       
        return 0;
}

傻眼貓咪 发表于 2021-12-17 11:37:26

#include <stdio.h>

int main(){
        char str;
        char *p = str;
        char c;
        while((c = getchar()) != '\n'){
                *p++ = c;
        }
        printf("%s", str);
        return 0;
}

jackz007 发表于 2021-12-17 12:09:56

本帖最后由 jackz007 于 2021-12-17 12:11 编辑

      这一句
      while ((j = getchar()) != '\0')
      没有意义,因为,无论如何,你都无法让 (j = getchar()) != '\0' 不成立,从而,无法让循环结束。
      所以,应当改为
      while ((j = getchar()) != '\n')
      在按下回车键的时候结束循环
页: [1]
查看完整版本: 这个程序为何运行不了