最佳答案
我目前正在通过 加速 C + + 工作,并在练习2-3中遇到了一个问题。
程序 的一个快速概述-该程序基本上接受一个名称,然后在一个星号框架内显示一个问候语-即 Hello!被 * 包围着。
练习 -在示例程序中,作者使用 const int
来确定问候语和星号之间的空白。然后,他们要求读者,作为练习的一部分,要求用户输入他们想要的填充物有多大。
所有这些看起来很容易,我继续要求用户两个整数(int
) ,并存储它们和改变程序使用这些整数,删除使用的作者,虽然我得到以下警告;
练习2-3. cpp: 46: 警告: 有符号和无符号整数表达式之间的比较
经过一些研究,这似乎是因为代码试图比较上述整数(int
)之一的 string::size_type
,这是罚款。但是我想知道,这是否意味着我应该将其中一个整数改为 unsigned int
?显式声明整数是有符号的还是无符号的重要吗?
cout << "Please enter the size of the frame between top and bottom you would like ";
int padtopbottom;
cin >> padtopbottom;
cout << "Please enter size of the frame from each side you would like: ";
unsigned int padsides;
cin >> padsides;
string::size_type c = 0; // definition of c in the program
if (r == padtopbottom + 1 && c == padsides + 1) { // where the error occurs
上面是相关的代码片段,c
是 string::size_type
类型的,因为我们不知道问候语可能有多长——但是为什么我现在遇到这个问题,当作者的代码在使用 const int
时没有遇到这个问题?除此之外-任何人谁可能已经完成了 加速 C + + -这将在本书后面解释?
我在 Linux Mint 上通过 Geany 使用 g + + ,如果这有帮助或有影响的话(正如我读到的那样,在确定什么是 string::size_type
时,它可以起到作用)。