c++ - 我需要帮助在一个类中输入两个字符串并获取它的输出
问题描述
当我尝试输入两个字符串名称str1
并str2
在程序中它给我错误
cpp|19|error: cannot convert 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'int' in return| |26|错误:无法将 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} 转换为 'int' 作为返回|
#include <iostream>
#include <sstream>
#include<string>
using namespace std;
class Student
{
string str1,str2;
public:
void set_first_name(string a)
{
str1=a;
}
int get_first_name()
{
return str1;
}
void set_last_name(string b){
str2=b;
}
int get_last_name()
{
return str2;
}
};
int main() {
string first_name, last_name;
cin >> first_name >> last_name ; //Entering the string
Student st;
st.set_first_name(first_name); //setting the string 1 in class Student
st.set_last_name(last_name); //setting the string 2 in class Student
cout << st.get_last_name() << ", " << st.get_first_name() << "\n"; // calling first and second string
cout << st.to_string(); //I don't know what
return 0;
}
新问题是
class Student
{
string str1,str2;
int ag, st;
public:
void set_first_name(string a)
{
str1=a;
}
string get_first_name()
{
return str1;
}
void set_last_name(string b){
str2=b;
}
string get_last_name()
{
return str2;
}
void set_age(int ag1)
{
ag=ag1;
}
int get_age(){
return ag;}
void set_standard(int st1){
st=st1;}
int get_standard(){
return st};
friend std::ostream& operator<<(std::ostream&, const Student&);
};
std::ostream& operator<<(std::ostream& out, const Student& student)
{
out << "("<<student.ag<<","<<student.str1 << "," << student.str2 << "," << student.st << ")";
return out;
}
int get_standard(void)
{
return st;
}
};
int main() {
int age, standard;
string first_name, last_name;
cin >> age >> first_name >> last_name >> standard;
Student st;
st.set_age(age);
st.set_standard(standard);
st.set_first_name(first_name);
st.set_last_name(last_name);
cout << st.get_age() << "\n";
cout << st.get_last_name() << ", " << st.get_first_name() << "\n";
cout << st.get_standard() << "\n";
cout << "\n";
std::cout << st;
return 0;
}
错误是
错误:预期的';' 在 '}' 标记之前 错误:未在此范围内声明“st” 错误:“}”标记之前的预期声明
解决方案
#include <iostream>
#include <sstream>
using namespace std;
class Student{
private:
int age;
int standard;
string first_name;
string last_name;
public:
void set_age(int a){
age = a;
}
int get_age(){
return age;
}
void set_standard(int b){
standard = b;
}
int get_standard(){
return standard;
}
void set_first_name(string c){
first_name = c;
}
string get_first_name(){
return first_name;
}
void set_last_name(string d){
last_name = d;
}
string get_last_name(){
return last_name;
}
string to_string()
{
stringstream ss;
char c = ',';
ss<<age<<c<<first_name<<c<<last_name<<c<<standard;
return ss.str();
}
};
int main() {
int age, standard;
string first_name, last_name;
cin >> age >> first_name >> last_name >> standard;
Student st;
st.set_age(age);
st.set_standard(standard);
st.set_first_name(first_name);
st.set_last_name(last_name);
cout << st.get_age() << "\n";
cout << st.get_last_name() << ", " << st.get_first_name() << "\n";
cout << st.get_standard() << "\n";
cout << "\n";
cout << st.to_string();
return 0;
}
推荐阅读
- bash - 如何在最后一个“/”字符之后获取一个字符串?
- flutter - Flutter依赖image_picker在启动时导致应用程序错误
- python - 在 Visual Studio Code 中导入问题
- ethereum - ethers.js 合约实例中没有 safeTransferFrom 函数?
- python - Python:无法按属性搜索
- html - 如何在 Angular 中使用 @Hostbinding 设置动态组件的样式?
- reactjs - 在 IE 11 上反应 Material-ui
- google-cloud-platform - 错误:(gcloud.builds.submit)HTTPError 403:***没有 storage.objects.get 访问 Google Cloud Storage 对象
- python-3.x - 数据转换-根据aws服务和pandas中的百分比计算总成本
- android - 错误状态:未找到 ProviderScope