#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. 二進制「>>」:沒有運營商發現這需要類型的右手操作數「的std ::對<int,int>」
- 5. 錯誤C2679:二進制 '<<':沒有操作員發現這需要型「的std :: string」
- 6. 我怎樣才能解決這個屏幕> PHP>無屏幕會發現
- 7. Erorr:沒有運營商 「>>」 匹配這些參數
- 8. 我怎樣才能使這個二進制代碼遞歸
- 9. 錯誤C2679:二進制'==':沒有找到操作符,它需要
- 10. 我怎樣才能克服這個Node.js iconv模塊安裝錯誤
- 11. 我怎樣才能得到這個Ajax請求發佈沒有錯誤?
- 12. 仍然得到二進制「<<」:沒有發現運營商發現右邊<string>
- 13. 我怎樣才能複製這與CSS?
- 14. 我怎樣才能讓這個更好
- 15. 我怎樣才能使這個代碼
- 16. 我怎樣才能循環這個
- 17. 我怎樣才能加入這個SQL?
- 18. 錯誤C2679:二進制'>>:找不到操作符找到類型爲'GradeType'的右側操作數
- 19. 使用LARGE_INTEGER給我回的錯誤錯誤C2679:「=」二進制沒有操作員發現這需要右手操作
- 20. 我怎樣才能解決這個錯誤
- 21. 我怎樣才能解決這個mysql_num_rows錯誤
- 22. CPAN錯誤。我怎樣才能解決這個問題?
- 23. 我怎樣才能解決這個錯誤
- 24. 我怎樣才能解決這個自定義錯誤在ASP.NET
- 25. 我怎樣才能解決這個錯誤:預期單candidat(1,2,3,4)
- 26. 我怎樣才能調試這個SQL錯誤..?
- 27. 需要的java.util.ArrayList <String>,發現java.lang.Object繼承:我不明白這個錯誤
- 28. C++錯誤C2819:類型「列表」,沒有一個重載成員「運營商 - >」
- 29. Angular2 =>運營商
- 30. PHP - >運營商