Cerr Not Working
Cerr Not Working
我写了一个函数,从命令行中获取两个数字并将其相乘,如果argc不是3,它应该输出一个cerr行;然而,它不起作用。我做错了什么吗?
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
int product;
int first_num = atoi(argv[1]);
int second_num = atoi(argv[2]);
product = first_num * second_num;
if(argc != 3)
{
cerr << "Usage: ./multiply first_num second_num" << endl;
exit(1);
}
else
{
cout << product << endl;
}
}
显示的不是cerr
,而是zsh: segmentation fault ./multiply
如果你没有传递任何参数给你的程序,argv[1]
是一个空指针,argv[2]
不存在,你不允许访问该索引。所以你不想把它传递给atoi()。首先检查,然后看看argv[1]
/argv[2]
是什么,如果你确定它们确实存在。
if(argc != 3)
{
cerr << "Usage: ./multiply first_num second_num" << endl;
exit(1);
}
else
{
int product;
int first_num = atoi(argv[1]);
int second_num = atoi(argv[2]);
product = first_num * second_num;
cout << product << endl;
}
相关文章:
- GDB - strcmp not working: __strcmp_sse2_unaligned
- QT qScriptConnect is not working
- QDesktopServices::openUrl() not working Qt
- "Configure: Error: Could Not Find a Working Compiler, See config.log For Details"
- C++ std::set ordering not working with customer class*
- C++ SetWindowText not working
- visual studio 2012 c++ hello world - iostream not working
- getGravity not working?
- Opencv findcontours CV_RETR_EXTERNAL not working
- c++ srand() not working
- std::queue::empty() not working?
- BCB swprintf not working
- 将类型作为指向另一个类的对象的指针的泛型类-NOT WORKING
- LoadLibrary is not working
- gluUnProject not working
- C++ catch bad_alloc not working
- updatelayeredwindow not working
- OpenMP set_num_threads() is not working
- glOrtho not working
- Cuda atomicInc not working