【问题标题】:C++ How To open an application using Text Input and If StatementsC++ 如何使用文本输入和 If 语句打开应用程序
【发布时间】:2015-05-01 06:28:42
【问题描述】:

我正在尝试使用 C++ 制作一个简单的应用程序启动器。

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

int main()
{
int textin;
cin >> textin;
if ( textin == "ATLauncher" )
    {
    system("C:\\Users\\NAME\\Main\\minecraftlaunchers\\AtLauncher\\ATLauncher.exe");
    system ("pause");
    return 0;
    }
}

使用 Dev C++ 时出现的错误消息

[错误] ISO C++禁止指针和整数比较[-fpermissive]

【问题讨论】:

  • “不让它工作”是什么意思?错误信息?段错误?它编译了吗?
  • 您的问题似乎特定于 Windows。所以请编辑它并标记它。 (在 Linux 或 POSIX 系统上,&lt;windows.h&gt; 头文件不存在)。
  • 你有什么问题?除了“任何人都可以帮助”之外,那是
  • “我不习惯 StackOverFlows 格式,所以代码可能会“乱七八糟”” 这就是为什么有一个预览窗格,所以您可以查看和修复任何格式发帖前的问题。因此,对网站来说是新手是无关紧要的:您只需继续在帖子上工作,直到它完成。对于它的价值,你在这里的格式做得很好。
  • 你用std::string textin;代替int textin;那么简单。

标签: c++ windows c++11


【解决方案1】:

我在您的代码中发现的问题:

textin 被声明为 int,但您将其与字符串文字 ("ATLauncher") 进行比较。将textin 的类型更改为std::string(并包含标题&lt;string&gt;)。

反斜杠 (\) 是 C/C++ 字符串中的转义字符。要放置真正的反斜杠,请为每个 \ 使用 \\

其他一些观察:

system&lt;stdlib.h&gt; 中声明,而不是在&lt;windows.h&gt; 中。

system("pause") 不必在那里。它只会让您必须在启动的程序终止后按一些键才能关闭控制台。

【讨论】:

  • 如何将 textin 的“类型”更改为 std:string?
【解决方案2】:

system() 是启动命令的一种可能的 std lib 调用(另请参见 spawn、exec ...) 你不需要运行 pause 因为系统不应该在第一个命令完成之前返回

在您的字符串中 \ 应该是 \ \x 表示特殊字符 x 即 \n(新行)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2020-03-17
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多