我想获取三个用户输入值A,B,C,然后创建一个存储这三个值的新整数,称为容量。我希望整数用逗号分隔,但是当我输出整数容量时,它仅返回C的值。我不知道如何解决此问题。
#include <iostream>
using namespace std;
int main()
{
int A;
cout <<"Enter Capacity of Jug A"<< endl;
cin >>A;
int B;
cout <<"Enter Capacity of Jug B"<< endl;
cin >>B;
int C;
cout <<"Enter Capacity of Jug C"<< endl;
cin >>C;
int capacity;
capacity = (A, B, C);
cout <<"capacity is "<< capacity;
return 0;
}
答案 0 :(得分:3)
您可以像这样使用数组:
#include <iostream>
using namespace std;
int main()
{
int A;
cout << "Enter Capacity of Jug A" << endl;
cin >> A;
int B;
cout << "Enter Capacity of Jug B" << endl;
cin >> B;
int C;
cout << "Enter Capacity of Jug C" << endl;
cin >> C;
int capacity[3];
capacity[0] = A;
capacity[1] = B;
capacity[2] = C;
cout << "capacity is " << capacity[0] << "," << capacity[1] << "," << capacity[2];
return 0;
}
答案 1 :(得分:0)
解决您的问题的一种方法是创建一个int
值数组。在数组的每个位置上都存储一个int
值。
int capacity[3];
cin >> capacity[0];
cin >> capacity[1];
cin >> capacity[2];
cout << capacity[0] << ", " << capacity[1] << ", " << capacity[2] << endl;
但是,更好的方法是使用循环。 for
,例如:
for (int i = 0; i < 3; ++ i)
{
cout <<"Enter Capacity of Jug "<< i << endl;
cin >> capacity[i];
}
与打印方式相同。
有关数组的更多信息:https://www.tutorialspoint.com/cplusplus/cpp_arrays.htm
有关for
循环的更多信息:https://www.tutorialspoint.com/cplusplus/cpp_for_loop.htm
答案 2 :(得分:0)
我希望整数用逗号分隔,但是当我输出整数容量时,它只返回C的值。
用int capacity;
拥有它是不现实的。 int
只能保存整数值(在一定范围内)。
您已用串联问题为问题加上标题,这使我相信您正在寻找一个std::string
来保存字符串值。 然后,您可以用字符串文字用逗号分隔整数。
#include <iostream>
#include <string> // std::string
int main()
{
// ... omitted for brevity
// use std::string, and CONCATENATE using the + operator
std::string capacity = "(" + std::to_string(A) + ", " + std::to_string(B) + ", " + std::to_string(C) + ")";
// ... do something with `capacity` ?
std::cout << "capacity is " << capacity << '\n';
return 0;
}
伙计,很多。除非您打算将字符串用于其他目的,否则应直接使用std::cout
(如Bolov's answer)输出值,或者根据需要使用std::stringstream
。
#include <iostream>
int main()
{
// ... omitted for brevity
std::cout << "capacity is (" << A << ", " << B << ", " << C << ")\n";
return 0;
}
答案 3 :(得分:0)
您只需编写以下代码即可:
#include <iostream>
using namespace std;
int main()
{
int A;
cout << "Enter Capacity of Jug A" << endl;
cin >> A;
int B;
cout << "Enter Capacity of Jug B" << endl;
cin >> B;
int C;
cout << "Enter Capacity of Jug C" << endl;
cin >> C;
cout << "capacity is " << A << "," << B << "," << C << endl;
return 0;
}
答案 4 :(得分:0)
怎么了?
您根本无法在一个int
变量中存储三个int
值。这没有道理。您需要其他数据类型来存储这些值,我将在后面解释。
发生了什么事?
当您在右侧表达式中用,
分隔值时,编译器会将它们视为多个表达式( expr1 , expr2 等)。并按顺序评估它们,但返回最后一个结果(即代码中C
的值)。因此,capacity
始终等于C
也就不足为奇了。
什么是正确的解决方案?
有多种方法可以解决此问题。
使用 struct
您可以定义一个结构并将值存储为其字段:
struct caps {
int A, B, C;
};
caps c = { A, B, C };
使用 std::array
(自C ++ 11起)
std::array<int, 3> c = { A, B, C };
使用 std::tuple
(自C ++ 11起)
std::tuple<int, int, int> c = std::make_tuple(A, B, C);