C ++ cout не печатает все аргументы - PullRequest
0 голосов
/ 10 октября 2018

У меня есть следующий код для распечатки объекта Car.Все поля общедоступны.

void print_cars_array(Car cars[]) {
/**
 * Prints all cars in the given car array.
 */
  for(int i = 0; i < NUM_CARS; i++) {
      std::cout << "Car #" << i + 1 << std::endl;
      std::cout << cars[i].year << ' ' << cars[i].color << ' ' << cars[i].make << ' ' << cars[i].model << std::endl;
  }
}

Однако, это дает мне следующий вывод:

Car #1
 Subaru Outback
Car #2
 Toyota Corolla
...

Сначала я подумал, что первые два поля были перепутаны, но изменяя циклна это:

void print_cars_array(Car cars[]) {
/**
 * Prints all cars in the given car array.
 */
  for(int i = 0; i < NUM_CARS; i++) {
      std::cout << "Car #" << i + 1 << std::endl;
      std::cout << cars[i].year << std::endl;
      std::cout << cars[i].color << std::endl;
      std::cout << cars[i].year << ' ' << cars[i].color << ' ' << cars[i].make << ' ' << cars[i].model << std::endl;
  }
}

Производит следующее:

Car #1
2016
green
 Subaru Outback
Car #2
2006
white
 Toyota Corolla

Я что-то упустил, почему те не будут печатать?Все поля, кроме year, являются строками, а year - целыми числами.

1 Ответ

0 голосов
/ 10 октября 2018

Попробуйте to_string(), поскольку проблема может быть связана с конкатенацией типов int и string

Ссылка: http://www.cplusplus.com/reference/string/to_string/

...