Esther111222 2021-04-06 13:35 采纳率: 100%
浏览 44
已采纳

请问为什么字符输入遇到0没有停下来?

一名新手小白在线求救;

规定了当输入0时停止输入;

但是不起作用;

>=数组长度才停下来;

请问是哪里出错了;

 

#include <iostream>

using namespace std;
class Counter
{
private:
    int i;
public:
    void init(int a)
    {
        i=a;
    }
    void alq(char *a)
    {
        char *p;
        p=a;
        while(*p++)
            i++;
        cout<<"字符总数为:"<<i<<endl;
    }
};
int main()
{
    Counter A;
    int a,e=1;
    char b[12],*p=b;
    cout<<"输入初始值:"<<endl;
    cin>>a;
    A.init(a);
    cout<<"输入字符:"<<endl;
    while(e==1)
    {
        cin>>*p;
        p++;
        if(*p==0)
            e=0;        
    }

    p=NULL;
    
    cout<<cin.gcount()<<endl;
    A.alq(b);

    return 0;
}

  • 写回答

4条回答 默认 最新

  • 关注

    你把p++放在if 语句的后面就正常了,不要加break,因为你赋值以后修改了指针,所以判断的时候值已经不是0了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败