C++代码停止工作错误使用cout内部函数
C++ code Stopped Working Error using cout inside function
当我在函数中使用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
。
相关文章:
- 在 COUT 语句中使用 COUT 调用函数
- C++ SSE 内部函数:将结果存储在变量中
- C++代码停止工作错误使用cout内部函数
- 为什么从具有较大阵列的 SIMD 内部函数中获得的相对加速比标量更大?
- 使用英特尔内部函数 (AVX) 中的混合说明
- 英特尔汇编与内部函数,AVX
- 使用SSE内部函数复制少量数据时出现问题
- 在为函数编写单元测试时,我应该模拟所做的内部函数调用吗?
- 用于平铺矩阵乘法的 AVX 内部函数
- 是否可以使用类的析构函数内部函数来重置值?
- 我在理解 AVX 随机内部函数如何为 8 位时遇到一些问题
- 无法执行内部函数 strlen
- COUT 内部函数调用的顺序
- GCC(通过 CUDA)内部函数的编译器错误,但我没有使用任何
- C++ ld 链接器 --wrap 选项不适用于内部函数调用
- 通过Visual Studio将小型结构逐值传递到非内部函数的速度很慢
- 使用内部函数递增数组的特定元素
- 在使用英特尔内部函数对 SIMD 代码进行编程时,如何强制使用 vmovapd 而不是 vmovupd?
- 如何最大限度地减少使用标量 SIMD 内部函数的 SIMD 注册表的双重负载开销
- C++:cout 和函数调用之间的计算顺序