string 示例程序失败

<pre name="code" class="cpp">#include <string>
#include <iostream>

using namespace std;

int main()
{
    string hexdigits = "0123456789ABCDEF";
    string result;
    string::size_type n;
    while(cin >> n)
        if(n < hexdigits.size())
        {
            result = result+hexdigits[n]+" ";
        }
    cout << result << endl;
    return 0;
}
 
 


1.不懂while(cin>>n)为什么n要用size_type格式

2.不懂result的生成过程(n在当中是怎么循环的)


new:

<span style="font-size:14px;">#include <string>
#include <iostream>

using namespace std;

int main()
{
    const string hexdigits = "0123456789ABCDEF";
    string result;
    string::size_type n;
    while(cin >> n)
        if(n < hexdigits.size())
            result += hexdigits[n];
    cout << result << endl;
    return 0;
}
</span>

结束cin>>n的方法:在输入待转换数字后输出ctrl+z将cin挂起,再回车即完成

你可能感兴趣的:(疑惑)