gpt4 book ai didi

c - 让 C 从 main 返回一个字符串

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:12 24 4
gpt4 key购买 nike

我在 Windows 上从 Ruby 脚本 (Ruby 1.9.3) 调用 C 程序(二进制,由 Code:Blocks 编译),但我无法将 C 程序的结果返回到脚本。我的 C 程序产生了 2 个整数,我想将它们返回给脚本,因为我无法返回两个整数,我将它们放在一个字符串中并返回了它,但是当我运行我的脚本时,一切正常,除了程序不返回任何内容.

再次阅读我的 C 程序后,我了解到当 main 定义为 int main() 时,我试图返回一个字符串。我的问题是我知道它只能是 int main(),但我需要得到这两个整数。

所以现在我的方法是将我的结果包装在我返回的一个字符串 (sprintf(output, "%i %i", i1, i2)) 中 (return output),然后我将该字符串存储在我的脚本中的一个变量中,并截断该字符串以获得整数,这次是在 Ruby 中 (string.split(//).collect!{|int| int.to_i })

我怎样才能得到我想要做的事情?

谢谢你的帮助

编辑:获取我的 C 程序输出的 Ruby 行是

results = `#{my_program_path} #{some_argument}`

我的 C 程序看起来像

int main()
{
char output[20];
sprintf(output, "%i %i", int1, int2);
return output;
}

最佳答案

C 程序只能返回整数。我听说过的任何操作系统上的程序或脚本都不能返回除单个整数状态代码以外的任何内容。

您如何阅读 C 程序的返回值?您是否偶然阅读了输出?如果是这样,您不想从 main 返回它,而是想将它打印到标准输出。为此,请将 sprintf(output, "%i %i", i1, i2) 替换为 printf("%i %i", i1, i2)

关于c - 让 C 从 main 返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26406630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com