smallcases 2017-07-07 09:38 采纳率: 50%
浏览 2546
已采纳

C++中string::type_size到底是什么,该如何理解

在学习C++过程中写了如下一串代码,调试过程中只有输入英文字母才会结束程序(跳出循环),按照我的理解只要输入的参数n不是string::size _ type就能跳出while循环了啊。
#include
using namespace std;
int main() {

  const string hexdigits = "0123456789ABCDEFF";
  cout << "please enter a series of number between 0 and 15\n"
    << "Separated by spaces. Hit Enter when finished: "
    << endl;
string result;
  string::size_type n;
  while (cin >> n)
       if (n < hexdigits.size())
            result += hexdigits[n];
   cout << "your hex number is " << result << endl;
   return 0;

}
  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-07-07 10:27
    关注

    你的理解基本是对的,除了英文字母外,输入#、¥、%、^等 非数字字符 也会结束循环。

    string::size_type是STL库模板类string的一个成员变量,这部分内容要深入学习可能耗时太多。
    简单的讲,它相当于int类型,区别在于它的大小范围要比int类型大得多。

    可以参考:

    https://msdn.microsoft.com/library/a9c3e0a2-39bf-4c8a-b093-9abe30839591.aspx#basic_string__size_type

    如果对您有帮助,请采纳答案好吗,谢谢!

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

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看