【问题标题】:Thread exception when compiling this basic C++ code in Xcode在 Xcode 中编译此基本 C++ 代码时出现线程异常
【发布时间】:2012-11-14 23:16:09
【问题描述】:

每次我编译这个 C++ 代码时,我都会遇到一个我无法理解的线程异常。这里有什么问题?

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[]) {
    string arg = argv[1];

    if (arg == "-r")
        cout << "First arg is -r" << endl;

    return 0;
}  

【问题讨论】:

  • 添加您获得的异常可能会有所帮助。
  • “编译时出现异常”?你的意思是编译器错误?还是运行程序时出现异常?请编辑您的问题以包含更多详细信息,包括来自编译器和链接器的所有错误。
  • 我不确定它到底是什么,但here's 是编译完成后出现的屏幕截图。
  • 在 strlen 上失败。您在调用二进制文件时是否传递了命令行参数。

标签: c++ xcode thread-exceptions


【解决方案1】:

在将 argv[1] 分配给字符串 arg 之前,您忘记检查 argc&gt;=2
你确定你是通过传递参数来运行这个程序吗?

可能的更正:

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[]) 
{
    if(argc<2)
    {
      cerr << "Not enough parameters" << endl;
      abort();
    }

    string arg = argv[1];

    if (arg == "-r")
        cout << "First arg is -r" << endl;

    return 0;
}

【讨论】:

  • 谢谢,这是我的问题,因为我只是在构建和运行时没有添加任何参数。
  • 这是一个可以帮助设置命令行参数的链接。 (link)
猜你喜欢
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多