C++ char *问题

vloso 2018-07-01 07:28:21
#include <iostream>
#include <cctype>
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
char m[20]; ///设置了长度为20

cin.getline(m,20); ///读入的数据为20

cout<<m<<endl; ///正常输出数据20

cout<<isdigit(m[0]); ///这里开始出问题了,如果(m)是没办法运行的报错

cout<<m[0]<<endl; ///看看m[0]是什么,结果不是想要的数据



}


我尝试了很多办法,但还没找到方法, 我只是想char 的数据 在 cout<<isdigit(m[0]); 这个函数里作为判断而已

但是 我得出的输出的char 数据全部都不完全的,求助求助


...全文
246 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JackyRao 2018-07-05
  • 打赏
  • 举报
回复
输入是什么, 在Linux下 没看出问题
_肆 2018-07-03
  • 打赏
  • 举报
回复
请先加个换行 cout<<isdigit(m[0])<<endl;

先不说题目要求,我跑了一下你现在的程序,实现的效果是:
输入一段string,把string存在char[20]里面,然后依次打印char里面的东西、isdigit(char[0])的函数返回值、char[0];

那举个例子,我输入了52ad2,a2然后打印出来的东西是
52ad2,a2 //现在char里面装的东西

4 //isdigit函数会判定我的参数是不是0~9的数字,现在是5,所以成功,返回一个非零值

5 //char的第一个字符
如果输入改成字母或者符号开头的话,isdigit的返回值就会打印0

然后再说你的题目,我想这和你写的差的很远吧
月凉西厢 2018-07-02
  • 打赏
  • 举报
回复
引用 5 楼 a34140974 的回复:
int isdigit(int _C);
如果 _C不是数字的ASCII码,返回非0值。注意返回值不是bool型,并且也没说数字一定返回的1。
建议强转一下std::cout << (bool)isdigit(temp);

额,写错了,
如果 _C是数字的ASCII码,返回非0值。
月凉西厢 2018-07-02
  • 打赏
  • 举报
回复
int isdigit(int _C);
如果 _C不是数字的ASCII码,返回非0值。注意返回值不是bool型,并且也没说数字一定返回的1。
建议强转一下std::cout << (bool)isdigit(temp);
vloso 2018-07-01
  • 打赏
  • 举报
回复
题目要求是输入十个 double 数据 遇到 非数字 就停止并统计,,所以我想到用char 实现,它有个函数判断数字为真为假,为假的时候我再将它进行char 转换成double运算,
vloso 2018-07-01
  • 打赏
  • 举报
回复
isdigit() 数字为真,,其他为假 !
vloso 2018-07-01
  • 打赏
  • 举报
回复
引用 1 楼 zhouqunhai 的回复:
cin.getline你输入的是什么


题目要求是 输入数字为正确,输入其他为不正确

cout<<isdigit(); 函数就是判断 非数字=0
zhouqunhai 2018-07-01
  • 打赏
  • 举报
回复
cin.getline你输入的是什么

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧