【发布时间】:2018-03-10 14:33:35
【问题描述】:
我不久前创建了一个简单的 C 程序。这是一个简单的命令行生成器,它需要一些数字,打印结果并停止。我总是在程序运行后自动暂停的编辑器命令行环境中运行它,所以我省略了在末尾添加getchar()。
我现在对此感到后悔,因为我设法失去了来源。我现在只有编译好的 .o 和 .exe 文件,而后者 - 当然 - 在打印输出后立即退出,因此无法使用。它没有那么长,大约 100 行,但我想避免重写它。 (另外,我什至可以通过这种方式学到一些新东西。)
现在我对 C 有非常基本的了解,并且在计算机学位 x86 汇编方面几乎为零(虽然我学习了微控制器的 8086 汇编的基础知识,但我想现在它不会有那么大的帮助),所以我有点卡在这里。我可以在编译后的代码中添加 getchar() 之类的暂停功能吗,或者有什么方法可以让 .exe 在退出之前停止,同时仍然保持独立?
该程序将在 Windows 10 系统上运行。
【问题讨论】:
-
您在什么操作系统上编程?一般来说,这类事情很棘手,但可以使用二进制编辑器来完成。您是否考虑过将您的程序包装在一个批处理文件中,该批处理文件在运行您的程序后立即执行
pause? -
@IharobAlAsimi 我明白了,作为初学者,我通常这样做。但它可以是任何东西。
-
@fuz 我在 Windows 10 上(这就是 .exe 的原因)。包装也可以是一个答案,但我对组装方式有点好奇。
-
为了解决终端限制而将命令行程序编辑得更糟的想法对我来说非常不愉快。正确的解决方案是包装它,或者在终端中设置某种选项——我对 Windows 不够熟悉,不知道这是否可行。 stackoverflow.com/q/9244280/3650362有一些建议
-
你可能应该得到某种版本控制,这样你的源代码就安全了。
标签: c assembly x86-64 getchar pause