Member 14151188 Ответов: 2

Как исправить входной код ?


#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

class Smartphone
{
		private:
      	int kode;
         char brand[25];

      public:
      	void entri_smartphone();
};
void rekam_smartphone(Smartphone smartphone);
void main()
{
     int pilih;
   cout<<"Press  = 1 (Input)"; cin>>pilih;
   if(pilih==1)
   {
      	Smartphone smartphone_elektronik;

   rekam_smartphone(smartphone_elektronik);
   }
   }

   void Smartphone::entri_smartphone()
   {
   	char tmp[15];
      clrscr();
      cout<<"<<Merkam Data Smartphone>>"<<endl;
      cout<<endl;

       cout<<"Kode :";
      cin.getline(tmp,sizeof(tmp));
      kode=atoi(tmp);
      cout<<"Brand		:";
      cin.getline(brand,sizeof(brand));
      }
   void rekam_smartphone(Smartphone smartphone)
   {
   char jawab;

   ofstream file_smartphone("data1.DAT",ios::app);
   for(;;)
   {
   	smartphone.entri_smartphone();
      file_smartphone.write((char*)&smartphone,sizeof(smartphone));

      cout<<endl;
      cout<<"Input data lagi[Y/T]";
     do
      {
      jawab=toupper(getch());
      }while(!((jawab=='Y')||(jawab=='T')) );

      cout<<jawab<<endl;

      if(jawab=='T')
      	break;
         }
         file_smartphone.close();
}


Что я уже пробовал:

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

Mohibur Rashid

Какая ошибка? Какая линия?

Member 14151188

может быть ошибка вставки кода меню

Member 14151188

на самом деле ошибки в программе нет, только если при вводе на вход происходит скачок

2 Ответов

Рейтинг:
1

OriginalGriff

"Это не работает" или "есть ошибка", вероятно, самые бесполезные сообщения о проблемах, которые мы получаем - и мы получаем их много. Он ничего не говорит нам о том, что происходит или когда это происходит.
Поэтому в будущем расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках.

Помогите нам помочь вам!

В данном случае, из вашего комментария

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

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

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а затем удвоить его и напечатать ответ, то если бы вход / выход был таким:
Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поместите точку останова в первую строку метода и запустите приложение. Когда он достигнет точки останова, отладчик остановится и передаст управление вам. Теперь вы можете запускать свой код построчно (так называемый "одноступенчатый") и просматривать (или даже изменять) содержимое переменных по мере необходимости (черт возьми, вы даже можете изменить код и повторить попытку, если вам это нужно).
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она действительно делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Надеюсь, это поможет вам определить, в какой части этого кода есть проблема и в чем она заключается.
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!


Рейтинг:
1

CPallini

Пожалуйста, используйте более обновленный компилятор. Ваш слишком стар и не соответствует требованиям (например, main функция должна вернуть int).
Ваш (измененный) код компилируется и запускается (создавая выходной файл), поэтому я не вижу ошибок. Пожалуйста, добавьте детали, чтобы получить лучшую помощь.