C++代码停止工作错误使用cout内部函数

C++ code Stopped Working Error using cout inside function

本文关键字:cout 内部函数 错误 代码 停止工作 C++      更新时间:2023-10-16

当我在函数中使用cout时,我的代码不起作用,但是如果我在main函数中返回值和流,它可以工作。 我的代码不起作用是

#include <iostream>
#include <cstring>
using namespace std;
int add(int a,int b){
int c = a+b;
cout<<c<<endl;
}
string add(string m,string n){
string c = m+" "+n;
cout<<c<<endl;
}
int main(){
string x ="amit";
string y ="kumar";
add(x,y);//adding string
add(5,58);//adding numbers
}

但是当我返回值时,它工作正常

#include <iostream>
#include <cstring>
using namespace std;
int add(int a,int b){
int c = a+b;
cout<<c<<endl;
}
string add(string m,string n){
string c = m+" "+n;
return c;
}
int main(){
string x ="amit";
string y ="kumar";
string z = add(x,y);
cout<<z<<endl;
add(5,58);//adding numbers
}

我正在使用代码块进行编程。为什么会有这种突然的行为。我在这里做错了什么。

两个程序都有未定义的行为

string add(string m,string n)int add(int a,int b)已声明non-void返回类型。但是函数在 end 中流动,没有返回任何内容的return语句。这会导致未定义的行为。

如果添加正确的 return 语句或将声明的返回类型更改为void它将在两个程序中按预期工作。

如果尚未启用,请在编译器中启用其他警告。它应该警告你这个问题。如果它确实警告了您,那么请不要忽略警告。修复所有这些问题。


另请注意,您需要#include<string>,而不是#include<cstring>,才能使用std::string