Программа не может отобразить `cout` при запуске - PullRequest
1 голос
/ 15 января 2011

Я начал курс C ++, написал, откомпилировал, отладил и запустил свою первую программу:

// This program calculates how much a little league team spent last year to purchase new baseballs.
#include <iostream>
using namespace std;

int baseballs;
int cost;
int total;
int main()
{
    baseballs, cost, total;

    // Get the number of baseballs were purchased.
    cout << "How many baseballs were purchased? "; 
    cin >> baseballs;

    // Get the cost of baseballs purchased.
    cout << "What was the cost of each baseball purchased? ";
    cin >> cost;

    // Calculate the total.
    total = baseballs * cost;

    // Display the total.
    cout << "The total amount spent $" << total << endl;
    return 0;
}

Единственная проблема, с которой я столкнулся, заключалась в том, что при запуске программы не отображалась общая сумма потраченных средств (cout). Может кто-нибудь объяснить, почему?

Спасибо

Джефф Х - Сарасота, Флорида

Ответы [ 2 ]

1 голос
/ 15 января 2011

Ваша программа отлично работает на моей системе (Mandriva Linux 2010.1 64-bit).

Распространенная проблема при разработке простых программ, выполняющих ввод / вывод текста в Windows, заключается в том, что окно консоли (cmd.exe), в котором они запускаются, само закрывается после завершения программы. Это не позволяет разработчику / пользователю прочитать окончательный вывод программы. Возможно, это то, что происходит в вашем случае?

EDIT:

Подтверждено в Visual Studio 2010. Окно закроется, прежде чем вы сможете прочитать вывод. Вы можете обойти эту проблему, если добавите

system("pause");

или просто прочитайте пустую строку ввода перед оператором возврата. Имейте в виду, что «трюк» system("pause") специфичен для Windows, и я не рекомендую его, хотя набирать его немного быстрее.

РЕДАКТИРОВАТЬ 2:

Я попытался прочитать пустую строку ввода и понял, что вам может потребоваться прочитать две такие строки, потому что у вас уже есть оставшийся символ новой строки во входном буфере, который имеет не был получен последним оператором cin.

0 голосов
/ 15 января 2011

Вы можете добавить еще один cin перед оператором return, чтобы завершить программу после просмотра выхода.Логика Ткалы верна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...