我想让用户输入一个字符(变量名为chr),输入之后再输出它。
程序中有两个cin命令,第一个用来供用户输入chr,第二个用于他处(变量名为b)。
如果用户在输入chr时输入了两个或两个以上的字符,那么他输入的第二个字符将会赋值到b,这样就出错了。
我现在想解决这个问题,就用了以下的程序,简略如下。
#include<iostream>
using namespace std;

int main()
{

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 在劫难逃

    19人对此回答表示赞同

    所有数组的数组名都是表示该数组的起始指针,在创建数组时一般都会为该数组分配地址,所以prechr2和prechr的地址值肯定不相同,if (prechr2==prechr)永远不成立,所以不管你怎么输入都只会输出error
    展开
    19
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 庸人一枚

    17人对此回答表示赞同

    看这一行:if(prechr2==prechr) 字符数组不可以这样引用的,这个命令相当于比较两个字符数组的首地址,肯定恒为假啦,所以使终输出error
    展开
    17
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 吴晴

    14人对此回答表示赞同

    #include<iostream>
    using namespace std;
    int main()
    {
    char prechr[20]; //要有足够的空间
    char prechr2[2];
    char chr;

    cin>>prechr;
    prechr2[0]=prechr[0];
    prechr2[1]='\0'; //要终结字符串
    展开
    14
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • Vivian

    10人对此回答表示赞同

    全输出"error"的原因就在这句if (prechr2==prechr),在你声明完char prechr[2];和char prechr2[2];之后,就注定prechr2!=prechr;因为你声明了这两个字符数组之后,系统就会给你一个地址和足够的空间来分别存储这两个数组中的数据,而这个地址就是数组的名称prechr和prechr2,两个数组分配的空间肯定不会在一个地方,所以你声明完char prechr[2];和char prechr2[2]之后,prechr就不可能再等于pr
    展开
    10
    0回复
    发布于 5年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部