因此,對於我的第二個C++類,我們必須編寫一個程序來創建5個結構體和一個類的數組。在結構中是一個int,一個5個雙精度數組和一個81個元素的字符數組。當然,其中一項功能是從用戶那裏獲取信息。該功能被稱爲setStructData():我在做什麼輸入功能有問題?
void Prog1Class::setStructData()
{
for(int i=0; i<5; i++)
{
cout<<"input an integer, five doubles, and a character array up to 80 characters."<<endl;
cin>>StructArray[i].m_iVal;
for(int j=0; j<5; j++)
{
cin>>StructArray[i].m_dArray[j];
}
cin.ignore('\n');
cin>>StructArray[i].m_sLine;
cout<<"String entered: "<<StructArray[i].m_sLine<<endl;
}
}
下一個函數getStructData()是結構和COUT的陣列中的每個元件採取給用戶的元件在一行中,下一個元件上的下一行和如此等等,直到顯示陣列上的所有5個元素。這是我有:
void Prog1Class::getStructData(int index, Prog1Struct *struct_ptr)
{
struct_ptr=&StructArray[index];
cout<<struct_ptr->m_iVal<<" ";
for(int i=0; i<5; i++)
{
cout<<struct_ptr->m_dArray[i]<<" ";
}
cout<<struct_ptr->m_sLine<<endl;
}
這個節目時,我通過鍵盤輸入(這是在structarray輸入的每個元素在同一行)進入工作,但我的教授給了我們一個文本文件test.txt是我們應該使用,它看起來像這樣(與字符數組在另一條線路比其他人):
10 1.2 2.3 3.4 4.5 5.6
Test string 1
20 2.3 3.4 4.5 5.6 6.7
Test string 2
30 3.4 4.5 5.6 6.7 7.8
Test string 3
40 4.5 5.6 6.7 7.8 8.9
Test string 4
50 5.6 6.7 7.8 8.9 9.1
Test string 5
其多數民衆贊成擰我的程序了文本文件,因爲它有一個完全的字符數組不同的路線。我相信它只是我輸入數據的方式,但我不知道如何解決它。有人能幫助我嗎? 當我使用I/O重定向來使用test.txt文件輸入我的數據時,我得到它輸出第一行(沒有字符串),然後剩下的就是一堆瘋狂的垃圾。請幫助我!d