#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cstring>
void initialize(char[],int*);
void input(const char[] ,int&);
void print (const char*,const int);
void growOlder (const char [], int*);
bool comparePeople(const char* ,const int*,const char*,const int*);
int main(){
char name1[25];
char name2[25];
int age1;
int age2;
initialize (name1,&age1);
initialize (name2,&age2);
print(name1,age1);
print(name2,age2);
input(name1,age1);
input(name2,age2);
print(name1,age1);
print(name2,age2);
growOlder(name2,&age2);
if(comparePeople(name1,&age1,name2,&age2))
cout<<"Both People have the same name and age "<<endl;
return 0;
}
void input(const char name[],int &age)
{
cout<<"Enter a name :";
cin>>name ;
cout<<"Enter an age:";
cin>>age;
cout<<endl;
}
void initialize (char name[],int *age)
{
name[0]='\0';
*age=0; }
void print (const char name[],const int age)
{
cout<<"The Value stored in variable name is :"
<<name<<endl
<<"The Value stored in variable age is :"
<<age<<endl<<endl;
}
void growOlder(const char name[],int *age)
{
cout<< name <<" has grown one year older\n\n";
*age++;
}
bool comparePeople (const char *name1,const int *age1,
const char *name2,const int *age2)
{
return(*age1==*age2 && !strcmp(name1,name2));
}
0
A
回答
7
您input()
功能的name
參數是指向const char
右手操作。 const
意味着你不能修改它,所以如果你需要修改它,它不需要是const。
這就是說,到真的修復它,用std::string
無論你目前使用char[]
S和char*
S和考慮返回的對象,而不是使用輸出參數;這會使你的代碼更容易出錯,並且更易於理解和理解。
0
符號'>>'是一個運算符。 String類的作者包含了這個運算符,它只接受原始類型,當然還有String類的類型。
你有兩個選擇:
- char數組轉換爲字符串
- 超載的「>>」操作者採取字符數組和輸出它,只要你喜歡
查找如果你真的想獲得樂趣,可以重載運營商。
相關問題
- 1. 我們怎樣才能實現這一點沒有慶典運營商
- 2. 錯誤c2679.Error 錯誤C2679:二進制「<<」:沒有操作員發現這需要類型的右手操作數「的std ::矢量<_Ty>」
- 3. 錯誤:二進制'>>':沒有找到操作符的類型'const char [1]
- 4. 程序總是返回二進制「>>」:沒有運營商發現這需要類型的錯誤左手操作數
- 5. istream :: operator >>(const char&)如何實現這樣的功能?
- 6. 二進制「>>」:沒有運營商發現這需要類型的右手操作數「的std ::對<int,int>」
- 7. 錯誤C2679:二進制 '<<':沒有操作員發現這需要型「的std :: string」
- 8. 如何修復錯誤C2679:二進制'>>':沒有找到運算符,它需要
- 9. 我怎樣才能解決這個屏幕> PHP>無屏幕會發現
- 10. Erorr:沒有運營商 「>>」 匹配這些參數
- 11. 錯誤C2679:二進制'=':沒有操作員定義,它需要一個類型
- 12. 我怎樣才能使這個二進制代碼遞歸
- 13. 錯誤C2679:二進制'==':沒有找到操作符,它需要
- 14. 如何解決 「類型 '爲const char []' 和 '爲const char *' 的無效操作數爲二進制 '運營商+'」
- 15. 我怎樣才能克服這個Node.js iconv模塊安裝錯誤
- 16. 我怎樣才能得到這個Ajax請求發佈沒有錯誤?
- 17. Scala |運營商「=>」等這類運營商
- 18. 沒有這樣的目錄錯誤>
- 19. 我怎樣才能實現這與jQuery?
- 20. 我得到這個錯誤 - > android.view.InflateException:二進制XML文件
- 21. 仍然得到二進制「<<」:沒有發現運營商發現右邊<string>
- 22. 我怎樣才能使自己的$這個 - >負載>鑑於笨
- 23. 我怎樣才能複製這與CSS?
- 24. 我怎樣才能讓這個更好
- 25. 對任何錯誤修正:二進制「>>」沒有操作員發現
- 26. 錯誤C2679:二進制「<<」:沒有操作員發現這需要類型的右邊的操作數「汽車」(或沒有可接受的轉化率)
- 27. 我怎樣才能使這個代碼
- 28. 我怎樣才能循環這個
- 29. 我怎樣才能分開這個NSString?
- 30. jQuery - 我怎樣才能簡化這個?