0

我现在正在学习使用 Borland 制作程序,所以这是我第一次使用它。我对结果感到困惑,因为结果不是我所期望的。

下面是我的代码:

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void main()
{
        char nama[25];
      char kelas[5];
      char jurusan[30];
      char universitas[30];
      char alamat[30];

      cout<<"Masukkan Nama Anda\t : ";
      gets(nama);
      cout<<endl;
      cout<<"Kelas\t\t\t : ";
      gets(kelas);
      cout<<endl;
      cout<<"Jurusan\t\t\t : ";
      gets(jurusan);
      cout<<endl;
      cout<<"Universitas\t\t : ";
      gets(universitas);
      cout<<endl;
      cout<<"Alamat\t\t\t : ";
      gets(alamat);
      cout<<endl;

      cout<<"\n\tBIODATA ANDA SEBAGAI MAHASISWA ADALAH SEBAGAI BERIKUT:"<<endl;
      cout<<"\n\nNama\t\t\t : "<<nama<<endl;
      cout<<"Kelas\t\t\t : "<<kelas<<endl;
      cout<<"Jurusan\t\t\t : "<<jurusan<<endl;
      cout<<"Universitas\t\t : "<<universitas<<endl;
      cout<<"Alamat\t\t\t : "<<alamat<<endl;
      cout<<"\n\nSilahkan tekan tombol ENTER untuk keluar dari program biodata singkat ini!";
      getch();

}

我得到的结果还不错,但是我在这里仍然存在一个问题。其中有一个变量没有显示用户已经给出的值,它没有显示值,它甚至只是给出了“u”这个词,我不明白这个词是从哪里来的。我把它和我的照片一起发送了,所以你可以看到它。 这是图像

我希望你能帮助我,非常感谢你阅读我的问题。

4

2 回答 2

0

在我尝试了一些建议来解决我自己的问题之后。然后我想知道,为什么只有Jurusan的变量包含我不知道它来自哪里的字符。我试着再看一遍,然后我把另一个变量的位置颠倒过来,我也在Jurusan//comment to make it not being seen as a code by machine变量前面放了一个注释符号,就没有问题了。相当思考,然后我只是尝试计算恰好低于Jurusan变量(Universitas变量)的变量中的字符总和,然后我还计算了该变量(Universitas变量)的大小。

在此之后,我才意识到变量Jurusan中的单词“u”是否是来自Jurusan变量下方的变量的其余字符,即变量Universitas

我作为用户,把字符大于Universitas变量的大小。当然,这是错误的,而且是错误的。

我回到代码上,使变量Universitas的大小比以前大,现在问题解决了。如果已经成功,你们可以在下面的图片中看到它,您也可以将它与我在问题部分中发送的上一张图片进行比较,它有问题。

这是我预期的结果,你们可以和之前有错误的结果进行比较

所以,谢谢你们那些试图帮助我的人。干杯!

于 2019-12-05T02:08:57.690 回答
0

您的所有输入数组:

  char nama[25];
  char kelas[5];
  char jurusan[30];
  char universitas[30];
  char alamat[30];

将是一个连续的chars 块。您的输入法很容易从一个数组溢出到下一个数组,造成各种破坏。

尝试std::string改用并输入std::cin

  std::string nama;
  std::string kelas;
  std::string jurusan;
  std::string universitas;
  std::string alamat;

  std::cout << "Masukkan Nama Anda\t : ";
  std::cin >> nama;
  std::cout << std::endl;
  std::cout <<"Kelas\t\t\t : ";
  std::cin >> kelas;
  std::cout << std::endl;
  std::cout << "Jurusan\t\t\t : ";
  std::cin >> jurusan;
  std::cout <<std::endl;
  std::cout << "Universitas\t\t : ";
  std::cin >> universitas;
  std::cout <<std::endl;
  std::cout << "Alamat\t\t\t : ";
  std::cin >> alamat;
  std::cout << std::endl;
于 2019-12-04T13:51:21.887 回答