我正在練習C++,我做了一個簡單的程序,詢問一些細節,然後將它存儲在一個結構中。該代碼如下所示:爲什麼不將值存儲在變量中?
#include<stdio.h>
#include <iostream>
using namespace std;
struct signup_form{
char name[];
char email[];
unsigned int age;
char usr_name[];
char pass[];
};
void signup(){
signup_form prsn;
cout<<"\n\tName: ";
gets(prsn.name);
cout<<"\n\n\tE-mail: ";
gets(prsn.email);
cout<<"\n\n\tage";
cin>>prsn.age;
cin.ignore();
cout<<"\n\n\tUsername: ";
gets(prsn.usr_name);
cout<<"\n\n\tPassword: ";
gets(prsn.pass);
cout<< prsn.usr_name<<"\t"<<prsn.pass<<"\t"<<prsn.name<<"\t"<<prsn.email;
return;
}
int main(){
signup();
return 0;
}
最後打印行是行cout<< prsn.usr_name<<"\t"<<prsn.pass<<"\t"<<prsn.name<<"\t"<<prsn.email;
的輸出。你可以清楚地看到,這個用戶名和密碼是相同的,雖然他們的值輸入不同,並且名稱,年齡和電子郵件沒有輸入然後...
爲什麼它給我這個錯誤?
您沒有分配給你的'char'陣列的任何記憶。 –
如果您練習C++,您應該瞭解'std :: string'。停止編寫C. – Zulan
如果這段代碼在編譯時不會傳出至少一堆警告,我很驚訝。和一個C++ 14兼容的編譯器不會吃它* *(不'''',哈利路亞!) – WhozCraig