【问题标题】:Linking separate C programs together将不同的 C 程序链接在一起
【发布时间】:2018-10-26 09:51:58
【问题描述】:

我在一个项目上需要一些帮助,计划是制作一个可以接受输入文件名的 C 程序,然后执行以下三个任务:

  1. 复制其内容并将其副本存储在另一个用户指定的位置
  2. 更改备份文件的格式,即从“.txt”改为“.img”
  3. 加密文件内容(任何密码方法)

注意:输入文件名必须在执行过程中扫描

我和我的团队已经完成了大约 75% 的工作,但它是分开的,就像以下三个任务中的每一个都是一个单独的程序, 我们无法将它们组合起来。

另一个错误是我们使用文件概念中的“重命名”功能来复制文件并更改其格式,我们不知道如何使用scanf 读取文件名并将其作为输入重命名函数。

所以如果你能给我任何建议..我真的很感激。

【问题讨论】:

  • 您希望我们告诉您什么?你不能把完全独立完成任务的多个人的完全分开的工作放在一起。您和您的团队应该从一开始就一起设计和创建集成代码。现在,您将不得不共同努力重写所有内容以在事后创建该集成。没有魔杖可以让你挥动一下,让所有的代码突然结合起来工作。
  • made about 75%don't have any idea of how to use scanf to read the file name and give it as input to the rename function。您没有完成第 2 步或第 1 步,这将使您的工作低于 75%。您采取的 3 个步骤是……嗯……微不足道的。使用 bash 命令和 openssl 编写更加容易。如果您有 3 个单独的程序,请复制其中的基本部分并从中创建一个程序。这就是程序员本质上所做的事情(并且是有报酬的)。

标签: c project


【解决方案1】:

我已经有一段时间没有使用它了,但您可以考虑使用 make 并创建一个 makefile。根据我从查阅的参考资料中看到的,基本的 makefile 看起来有点像这样。

makefile.h:

basicMakefile: basicMake1.c, basicMake2.c, basicMake3.c
      gcc -o basicMakefile basicMake1.c basicMake2.c basicMake3.c -I

至于使用scanf,假设我们有

char str1[20]; //creates a char array(a string) that is 20 chars long

printf("Enter the new name for the file: ");
scanf("%s" , str1); //puts the user entered value into str1

你可以这样做

rename(str1) //function call with the new filename
//whatever your rename funtion does for the logic

以下是我使用的参考资料,我强烈建议对这些参考资料进行更深入的了解,因为它们对这些概念的解释比我在此处的内容更详细。我上面的例子是从其中找到的。

制作文档:https://www.gnu.org/software/make/manual/make.html

Scanf 教程:https://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm

简单的 Makefile 教程:http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    相关资源
    最近更新 更多