【问题标题】:C++ running command in linux terminal I dont get itlinux终端中的C++运行命令我不明白
【发布时间】:2012-12-12 17:15:30
【问题描述】:

我正在自学 C++,让我们把它放在桌面上。我通过选择我想要编程的内容并进行操作来学得最好,一步一步的 hello world 等等 tuts 对我来说太慢了,所以现在放在一边。

我正在尝试弄清楚如何在终端 (Kubuntu) 中运行通过 getline (cin,str) 得到的字符串。我通读了system(),这听起来像是一个糟糕的选择,fork() 我没有完全理解,exec() 也一样。可能是我想错了。

基本上,我想移动我编写的 bash 脚本并使其成为程序。我很确定这不是一项小任务,但我这样做是为了好玩。欢迎任何帮助。没有粘贴代码,因为它太基础了,还不如不存在。

【问题讨论】:

  • 你能试着描述一下你在做什么吗?您说的是字符串-之后您说的是 bashscript ?你做了什么,你输入了什么,你期望发生什么/想要发生什么?
  • 你读过advancedlinuxprogramming.com 吗?你读过一些关于 C++ 编程的好书吗?您是否考虑过学习像 Ocaml 这样易于学习但功能强大的语言 (caml.inria.fr & ocaml.org ...)

标签: c++ linux bash terminal command


【解决方案1】:

您不需要system()fork()exec()。这些都是从另一个进程产生进程的系统调用。

相反,您只需要一个 main() 方法,然后读取命令行参数和/或标准输入。例如来自here

#include <stdio.h>
int main( int argc, const char* argv[] )
{
    printf( "\nHello World\n\n" );
}

不要忘记你的程序可能不会编译到你路径上的任何地方,你应该调用它指定适当的目录,例如

$ ./myprogram

【讨论】:

  • 好的,我只是在测试获取用户输入的最佳方式。然后我想在我的终端中使用它。(从终端视图)示例:你好用户!命名您的文件以查找:(用户输入文件名)foo.sh 现在我可以将他们输入的 foo.sh 添加到等待它的命令中。就像 find mystring 一样。这只是一个示例和我正在寻找的基本用法。我将基本上用 C++ 重写的 bash 脚本在不同的时间接受用户输入,所以我需要能够使用这样的命令。
  • LOL 否决票?我想知道是不是因为我的语法和拼写很糟糕。
  • d4rkh4nd@:虽然这似乎是编写 C++ 的合理练习,但实际上并非如此。像 Bash 这样的 Shell 与 C++ 有着根本不同的作用,Shell 用于运行其他程序。您可以在 C++ 中做到这一点,但这不是它的主要作用,如果您将其视为 shell 的替代品,您将失去 C++ 的优势。如果你能在 Bash 中做所有事情,考虑一下你为什么要学习 C++。
  • 这是一个垃圾问题,但这并没有回答。
  • cdarke@:我的目标只是学习,而您的评论实际上很有帮助,我从来没有这样想过。我相信 c/c++ 是大多数程序的核心(流行观点),所以我想根据我写的 bash 编写一个简单的程序来学习。
【解决方案2】:

基本上我想移动我写的一个 bash 脚本并使其成为一个程序

您可以使用shc 将您的脚本转换为程序。

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多