的jibberish線這是我的頭文件COUT輸出消息,而不是實際用戶的COUT聲明
#ifndef KINGDOM_H_
#define KINGDOM_H_
#include <string>
using namespace std;
namespace sict{
class Kingdom {
public:
char m_name[32];
int m_population;
};
void display(Kingdom& pKingdom);
}
#endif
,這些都是我的cpp文件
#include <iostream>
#include <string>
#include "kingdom.h"
using namespace std;
namespace sict {
void display(Kingdom& pKingdom) {
cout << pKingdom.m_name << ", population " << pKingdom.m_population << endl;
}
}
而且這是我最後的cpp文件
#include <iostream>
#include "Kingdom.h"
using namespace std;
using namespace sict;
void read(sict::Kingdom&);
int main() {
int count = 0; // the number of kingdoms in the array
Kingdom* pKingdom = nullptr;
cout << "==========\n"
<< "Input data\n"
<< "==========\n"
<< "Enter the number of Kingdoms: ";
cin >> count;
cin.ignore();
if (count < 1) return 1;
pKingdom = new Kingdom[count];
for (int i = 0; i < count; ++i) {
cout << "Kingdom #" << i + 1 << ": " << endl;
cin >> i;
cout << "Enter the name of the Kingdom: " << pKingdom[i].m_name;
cin >> pKingdom[i].m_name;
cout << "Enter the number people living in " << pKingdom[i].m_population << ": ";
cin >> pKingdom[i].m_population;
}
cout << "==========" << endl << endl;
// testing that "display(...)" works
cout << "------------------------------" << endl
<< "The 1st kingdom entered is" << endl
<< "------------------------------" << endl;
sict::display(pKingdom[0]);
cout << "------------------------------" << endl << endl;
delete[]pKingdom;
pKingdom = nullptr;
return 0;
}
// read accepts data for a Kingdom from standard input
void read(sict::Kingdom& kingdom) {
cout << "Enter the name of the Kingdom: ";
cin.get(kingdom.m_name, 32, '\n');
cin.ignore(2000, '\n');
cout << "Enter the number of people living in " << kingdom.m_name << ": ";
cin >> kingdom.m_population;
cin.ignore(2000, '\n');
}
當代碼到達部件輸入Kingdom名稱時,它會提示用戶回答,但在提示之前,它只是輸出jibberish這樣
https://i.imgur.com/MSSHgvz.png
而且,當它到達進入人們生活的數量,這也將輸出「-842150451」之前,我甚至可以輸入一個有效的數字。
任何猜測來解決問題?
因子的所有指針。然後使用'std :: string'而不是char緩衝區。不要在標題中使用名稱空間標準。最後,不要在變量初始化之前打印出變量。 – moooeeeep
你是指所有指針的意思是什麼? – lucas
請勿在您的代碼中使用它們。 – moooeeeep