私は c++ が初めてで、印刷機能に問題があります。これは非常に単純な問題かもしれませんが、解決方法がわかりません。
コードを書き始める前に、これは循環リストであることを付け加えておきます。
まず第一に、これが私の連結リスト構造です
struct CL;
typedef CL* list_type;
struct person
{
string last_name;
string first_name;
string tel_nr;
};
struct CL
{
person data;
list_type next;
};
ご覧のとおり、リストにデータとポインターを含める必要があります。データは人(姓、名、電話番号(文字列))です。
私のメインプログラムは次のようになります
int main ()
{
list_type list;
list_type first;
string line;
person info;
ifstream myfile ("INFILE.TXT");
if (myfile.is_open())
{
while (myfile.good())
{
getline (myfile,line,',');
info.last_name=line;
getline(myfile,line,' ');
getline(myfile,line,':');
info.first_name=line;
getline(myfile,line);
info.tel_nr=line;
if(first==0)
{
list = new CL;
first = list;
list->data = info;
list->next = 0;
}
else
{
list->next = new CL;
list = list->next;
list->data = info;
list->next = 0;
}
}
list->next = first;
print(list);
myfile.close();
}
else cout<<"Unable to open file.";
return 0;
}
そして今、私が問題を抱えている部分、印刷機能に。
void print(CL* cur)
{
list_type first;
first=cur;
int x;
do
{
cout<<"\n"<<"Your Data is: ";
cout<<cur->data.last_name<<cur->data.first_name<<cur->data.tel_nr;
//I guess this is where the fault lies ^.
cur = cur->next;
}
while(cur != first);
}
可能であれば、正しいコードだけでなく、説明が欲しいです。
ありがとう
編集。私が得ている結果は、次のような多くの奇妙な文字です。
ê,(,?,ý and alot of other characters I don't know how to type.
私が期待している結果は、このようなものです
Robertson Linda 0838-2345
Brown Charles 068-24567
etc until the end of list
編集2。
解決しました。