#include<iostream>
using namespace std;
void main(void){
int i;
struct person {
char name[12];
int age;
char sex;
person *next;
};
person *head, *tail, *temp;
temp=new person;
head=temp;
tail=head;
for(i=1; ;i++){
cout<<endl<<i<<" "<<"name:";
cin>>temp->name;
if(temp->name[0]!='*'){
cout<<"age:";cin>>temp->age;
cout<<"sex:";cin>>temp->sex;
temp->next=NULL;
tail=temp;
}
else{
delete temp;
tail->next=NULL;
break;
}
temp->next=new person;
temp=temp->next;
}
temp=head;
while(temp!=NULL){
cout<<endl<<temp->name<<" "<<temp->age;
cout<<" "<<temp->sex<<endl;
temp=temp->next;
}
}
運行程式時一來就輸入*號,出現這種情況怎么辦?
uj5u.com熱心網友回復:
這種亂碼說明程式有錯!uj5u.com熱心網友回復:
那請問應該怎么處理啊,如果不是一開始輸入*,程式運行就沒有問題。
uj5u.com熱心網友回復:
else{delete temp;
tail->next=NULL;
break;
}
問題應該在這兒,輸入 * 號,temp被釋放了,輸入資料的部分沒有執行,所以輸出亂碼
uj5u.com熱心網友回復:
你的代碼寫錯了唄
uj5u.com熱心網友回復:
采用string也行,或者#include<cstdio> scanf("*%d",&temp);轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84677.html
標籤:新手樂園
上一篇:C++新手求助
