2015-05-11 4 views
-2
#include <iostream> 

using namespace std; 

struct parts { 
    int partNumber; 
    int partPrice; 
} parts p; 

void main() { 
    cout << "Enter part number and its price " << endl; 
    cin >> p.partNumber; 
    cin >> p.partPrice; 
    cout << "Part Number " << p.partNumber << "Part Price " << p.partPrice; 
} 

Приведенный номер детали "098" и частичная цена "3456", вывод: Part Number 98 Part Price 3456 Почему мой входной сигнал "098" выводится как "98"?Structure integer as value

+0

Почему ваше сообщение отформатировано этим странным и непроницаемым способом? –

+3

- это стихотворение. –

ответ

3

Потому что введенный вами номер 98. Это число выше 97 и число ниже 99. Счет. Количество. Абстрактная концепция.

intNOT строка цифр. Это не '9', затем '8', или '0', затем '9', а затем '8'.

Это имеет смысл, если вы думаете о том, как номера хранятся на компьютере: в двоичном формате. Почему компьютер, переводящий десятичный ввод в двоичный файл, отдельно хранит количество введенных нулей? Это не то, что он делает, потому что в этом нет необходимости.

Я бы рекомендовал хранить «номер детали» в виде строки, потому что элемент «номер» - это то, что он вызывается на английском языке, и на самом деле не точно показывает, что значение равно: как вы указали , вы хотите, чтобы это была строка символов. Если ничего другого, я регулярно встречаю «номера частей» с буквами в них.

+0

Если я хочу добавить, то как это сделать? – Rizvi

+0

@Rizvi: Я не понимаю, о чем вы спрашиваете. –

+0

Затем сохраните его как строку, а не цифру. –

0

Если ведущие нули имеют смысл, вы должны хранить свои «числа» как строки, а не целые числа. Ваши «цифры» не являются действительно цифрами - номер 098 совпадает с номером 98, но строка 098 отличается от строки 98.