程序卡住,不打印输出

时间:2019-05-23 20:01:38

标签: c++

我是C ++的初学者。我正在尝试使用C ++中的字符数组。所以,我写了这段代码。

#include <iostream>

using namespace std;

//Main Function
int main()
{
   //Variable declaration
   char First[30];
   char Middle[30];
   char Last[40];
   //Array to store all names
   char Name[70];

   //Loop variables
   int i = 0, j = 0;

   //Reading all the name
   cout << "Enter First name: ";
   cin >> First;

   cout << "Enter Middle name: ";
   cin >> Middle;

   cout << "Enter Last name: ";
   cin >> Last;

   //Copies all characters of Last name to fourth array
   while (Last[i] != '\0')
   {
       Name[j] = Last[i];
       i++;
       j++;
   }
   //placing a comma in the fourth array and adding a space
   Name[j] = ',';
   j++;
   Name[j] = ' ';
   j++;

    cout<<"Hello1\n";

   //Copies all characters of First name to fourth array
   i = 0;
   while (First[i] != '\0');
   {
       Name[j] = First[i];
       i++;
       j++;
   }
   //Add a space
   Name[j] = ' ';
   j++;


    cout<<"Hello2\n";

   //Copies all characters of Middle name to fourth array
   i = 0;
   while (Middle[i] != '\0');
   {
       Name[j] = Middle[i];
       i++;
       j++;
   }
   Name[j] = '\0';
   //Display the fourth array
   cout << Name << endl;
}
  • 此代码的问题是我要打印的全名 Name []数组。但是仅在打印“ Hello1”后卡住了。 它在“ Hello1”之后不打印任何内容。它正在接受所有输入 三个名称(在First [],Middle []和Last []中)正确。所以我 决定从第1行中找出我的代码。我知道有 在第一次while循环后出现一些问题,因为我正在尝试打印“ Hello1” 和“ Hello2”。问题是它正在正确打印“ Hello1” 但它因“ Hello2”而卡住。我认为有一些问题 第2个while循环。但是我没有得到错误我该如何解决 这个。

    请对此提供帮助,以便可以打印全名 正确。

1 个答案:

答案 0 :(得分:8)

好吧,问题是您的while循环,您犯了一个错误,那就是在其末尾放置; ,这是在进行无穷循环,并且永远不会发生第二次问好。 >

//Copies all characters of First name to fourth array
   i = 0;
   while (First[i] != '\0'); // <- Here is your problem

应为:

//Copies all characters of First name to fourth array
   i = 0;
   while (First[i] != '\0') { // <- Here is your problem

编辑

感谢Gilles-PhilippePaillé指出,在第三个while循环中也有一个分号,应该删除:D