почему он всегда дает нулевой вывод? - PullRequest
1 голос
/ 13 января 2011
int i;
cin>>i;
cout<<i

когда мы ввели символ, то есть 'A', почему он дает нулевой вывод?

Ответы [ 3 ]

7 голосов
/ 13 января 2011

Поскольку A не является числовым значением, подходящим для хранения в целом числе, поэтому оно не будет содержать ваше целое число, как показано здесь:

#include <iostream>
int main (void) {
    int i = 12345;
    std::cin >> i;
    std::cout << i << std::endl;
    return 0;
}

Когда вы запускаете этот код и вводите A, он выводит 12345, поскольку значение не меняется.

Если вы хотите действительно надежный ввод, обычно лучше вводить строки в виде строк, а затем конвертировать их самостоятельно.

Программы "Микки-Мауса" или программы, в которых вы полностью контролируете ввод, могут использовать методы ввода, которые вы используете, для серьезного кода следует использовать более подходящие методы.


Если вы намереваетесь преобразовать входной символ в его целочисленный код, вы можете использовать что-то вроде:

#include <iostream>
int main (void) {
    char c;
    std::cin >> c;
    std::cout << (int)c << std::endl;
    return 0;
}
6 голосов
/ 13 января 2011

Вы должны всегда проверять, была ли операция успешной, прежде чем продолжить.

int i;
if (cin >> i)
    cout << i;
else
    cout << "Not a valid number!";
0 голосов
/ 13 января 2011

потому что значение 'A' не хранится в переменной i, поскольку это целочисленная переменная.Я полагаю, что по этой причине начальное значение 12345 выводится на экран ...

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