C++ 为什么输出是方框中的问号而不是数字?
我正在尝试编写一个程序,如果某个小狗主人的小狗与小狗主人的距离超过一定距离,就会提醒用户 具体而言,以下计划:C++ 为什么输出是方框中的问号而不是数字?,c++,loops,output,C++,Loops,Output,我正在尝试编写一个程序,如果某个小狗主人的小狗与小狗主人的距离超过一定距离,就会提醒用户 具体而言,以下计划: 首先要求用户输入所有者的位置,即输入2个整数a和b 然后要求用户输入主人拥有的小狗数量。这是一个正整数n 对于n只小狗中的每只小狗i,程序要求用户输入小狗i的位置。这是2个整数x和y,它们当然都依赖于i 如果计算出小狗i与主人的距离大于10个单位,则程序应通过打印i通知用户 最后,程序应该告诉用户已经打印了号码的小狗的总数。此数字由变量count表示,它是一个正整数 下面是一个例子
- 首先要求用户输入所有者的位置,即输入2个整数
和a
b
- 然后要求用户输入主人拥有的小狗数量。这是一个正整数
n
- 对于n只小狗中的每只小狗
,程序要求用户输入小狗i的位置。这是2个整数i
和x
,它们当然都依赖于iy
- 如果计算出小狗i与主人的距离大于10个单位,则程序应通过打印i通知用户
- 最后,程序应该告诉用户已经打印了号码的小狗的总数。此数字由变量
表示,它是一个正整数count
I
。请问我做错了什么
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
string puppies;
int a,b;
cin>>a>>b;
int n;
cin>>n;
int i,x,y,count=0;
for (i=1;i<=n;i++){
cin>>x>>y;
int dist;
dist=abs(a-x)+abs(b-y);
if (dist>10){
count++;
puppies += i;
}
}
if (count==1){
cout<<"Puppy "<<puppies[0]<<" too far away"<<endl;
cout<<"Total "<< count <<" puppy too far away";
}
if (count>1){
int j;
for (j=0;j<=(count-2);j++){
cout<<"Puppy "<<puppies[j]<<" and"<<" ";
}
cout<<"Puppy "<<puppies[count-1]<<" too far away"<<endl;
cout<<"Total "<< count <<" puppies too far away";
}
if (count==0){
cout<<"No puppies too far away";
}
}
#包括
#包括
#包括
使用名称空间std;
int main(){
弦乐小狗;
INTA,b;
cin>>a>>b;
int n;
cin>>n;
整数i,x,y,计数=0;
对于(i=1;i>x>>y;
国际区;
dist=abs(a-x)+abs(b-y);
如果(距离>10){
计数++;
幼犬+=i;
}
}
如果(计数=1){
不能您试图使用std::string
作为数字的容器。当然,对于足够小的数字,它可以这样做,但您可能需要切换到std::vector
您实际观察到的问题是,小狗[0]
是一个char
,它位于std::cout中
如果查看重载集,您会发现int
没有重载。但是,char
有重载。所有整数类型都可以隐式转换为其他整数类型,在这种情况下,int
转换为char
。附加到字符串的字符就是其中一个由整数值表示。哪个整数值表示哪个字符取决于系统使用的字符集
您可能打算将整数附加到文本表示中。例如,您可以使用std::to_string
将整数转换为字符串
也就是说,使用字符串来实现这一目的似乎是倒退的,因为您似乎没有将其用作字符串,而是更像一个整数数组。因此,整数向量可能是一个更明智的选择。程序输出一个问号,而不是i的
,它只输出一个问号,可以吗发布准确的输出。@KamilCuk已编辑。Thanks@Kira很好,很好,昆汀,你能帮@Kira吗
puppies += i;