只有一个变量正在打印 C++

For*_*ods 0 c++ visual-c++

//libraries
#include <iostream>

//standard namepace
using namespace std;


int Car() {
    int a;
    int b;
    
    cout << "Fuel Tank" << endl;
    cin >> a;
    cout << "MPG" << endl;
    cin >> b;

    return a, b;
}
int main() {
    int a;
    int b;
    
    a,b = Car();
    
    cout << "Print Values " << (a,b);    // <--- Line 25

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

假设您将 10 和 15 作为第一个和第二个输入。为什么 15 是cout第 25 行语句中唯一要打印的变量。

bol*_*lov 5

这不是 C++ 的工作方式。

你需要:

std:: pair<int, int>  Car() {
    ...
    return {a, b};
}
Run Code Online (Sandbox Code Playgroud)
auto [a, b] = Car();
std::cout << a << ", " << b;
Run Code Online (Sandbox Code Playgroud)

你有什么:

int Car()
Run Code Online (Sandbox Code Playgroud)

Car是一个返回 1 的函数int

return a, b;
Run Code Online (Sandbox Code Playgroud)

这里有逗号运算符,它计算每个参数并丢弃除最后一个参数之外的所有参数。所以它返回b

a, b = Car();
(a, b)
Run Code Online (Sandbox Code Playgroud)

再次是逗号运算符。a被丢弃并被b分配。然后a被丢弃并b打印。