您认为哪种方式更好地在主函数中声明argv参数以及为什么?
int main(int argc, char **argv /* char *argv[] */ /* char (*argv)[] */) {
//...
}
Run Code Online (Sandbox Code Playgroud)
argv最终作为指针进入函数 - 就像argv地址的副本一样,但不是数组,对吧?所以我认为,其他选择也必须在语法上正确,但你更喜欢哪种方式?
问候
我正在尝试使用Java获取项目中所有类的列表,并且我想确定main方法所在的类.有没有办法能够识别一个类正在实现main方法,而不是实际查看类本身的代码?
我已实现以下内容,但返回值始终为false.有谁知道为什么会这样?
Class<?> c = "edu.tool.parsing.A".getClass();
boolean hasMain = true;
try {
c.getMethod("main", String[].class);
hasMain=true;
} catch (SecurityException e) {
hasMain = true;
} catch (NoSuchMethodException e) {
hasMain=false;
}
Run Code Online (Sandbox Code Playgroud) 在调用int main()之后是否有可能运行任何其他指令?
int main(){cout<<"a";}
Run Code Online (Sandbox Code Playgroud)
在main()之后调用cout <<"b"; 在某个地方之后.没有任何改变main().
这是我在Eclipse上使用的代码我不明白我哪里出错了.我是Java初学者,所以我不太熟悉这个主题.任何帮助将非常感激.当我尝试通过运行程序看到我走了多远时,错误始终存在,轻松的计算机行话请我是新来的这个大声笑.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;
public class CBombRombot extends JFrame implements ActionListener, ChangeListener {
private JPanel panel;
private JPanel bottompanel;
private JPanel rightpanel;
private static void main(String[] args) {
CBombRombot frame = new CBombRombot();
frame.setTitle("CBombRobot Application");
frame.setSize(875, 550);
frame.show();
frame.setResizable(false);
frame.setLocationRelativeTo(null);
}
private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new BorderLayout());
panel = new JPanel();
panel.setPreferredSize(new Dimension(650, 450));
panel.setBackground(Color.white);
window.add(panel);
rightpanel = new JPanel();
rightpanel.setPreferredSize(new Dimension(200, 180));
rightpanel.setBackground(Color.lightGray); …Run Code Online (Sandbox Code Playgroud) 这是我的计划:
main()
{
printf("hello world\n");
}
Run Code Online (Sandbox Code Playgroud)
编译时我收到此警告:
function should return a value
Run Code Online (Sandbox Code Playgroud)
当改变main()到void main()时,警告消失.
为什么会这样?
我想知道if __name__ == "__main__":在python 中真正做了什么,我在python3中有以下代码:
def main():
test();
def test():
print("hello world " + __name__);
if __name__ == "__main__":
main();
Run Code Online (Sandbox Code Playgroud)
我们知道在使用之前我们必须声明一个函数,所以if部分内部的函数调用工作正常,在语句main()内部调用之前定义if,但是test()函数怎么样,它在调用之后定义而且没有错误:
def main():
test();
def test():
print("hello world " + __name__);
Run Code Online (Sandbox Code Playgroud)
如果在test()调用函数后定义函数怎么能呢?
我在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}`
Run Code Online (Sandbox Code Playgroud)
我的C程序看起来像
int main()
{
char output[20];
sprintf(output, "%i %i", int1, int2);
return output;
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个利用银行家算法的多线程程序,所有这些程序都经过硬编码和编译,但是available从填写用户输入的初始数组时遇到问题
#DEFINE NUMBER_OF_RESOURCES 3
int available[NUMER_OF_RESOURCES]; //available will be length of argc i.i number of total resoruces
int main(int argc, char *argv[])
{
printf("AVAILABLE RESOURCE: \n [");
//Populate Available Resource Array
for (i = 1; i < argc; i++)
{
available[i-1] = argv[i];
printf("%d ", available[i]);
}
printf("] \n\n");
}
Run Code Online (Sandbox Code Playgroud)
执行时:
./a.out 10 7 5
它打印:
[1604031496 1604031499 1604031501 ]
Run Code Online (Sandbox Code Playgroud) 我被要求创建一个主方法,允许我创建一个狼对象,鹦鹉对象和犀牛对象,我已经为每个动物创建了类,并且它们扩展了包含抽象方法makeNoise()的抽象类动物.我在我的rhino,parrot和wolf类中实现了这个抽象方法,该方法包含一个System.out.println函数和与这些动物相关的噪声.例如,我的parrot类(扩展动物)包含一个方法makeNoise(),它打印出"squawk".
我被要求证明我可以为主要课程中的每个动物对象调用这个makeNoise方法,我该怎么做呢?
public class Main() {
Wolf myWolf = new Wolf();
//I want my wolf to make a noise here
Parrot myParrot = new Parrot();
//I want my parrot to make a noise here
Rhino myRhino = new Rhino();
//I want my rhino to make a noise here
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Haskell编写程序,该程序需要简单的保存和加载功能。当我调用保存功能时,我需要将一个字符串放入文本文件中。调用load时,需要将字符串从文本文件中拉出。
我知道Haskell中围绕IO的复杂性。从网上的一些阅读中,我发现可以通过“主要”功能来实现。但是,我似乎只能实现保存或加载……不能同时实现。
例如,我目前具有以下功能,用于从文件读取。
main = do
contents <- readFile "Test.txt"
putStrLn contents
Run Code Online (Sandbox Code Playgroud)
我还如何实现写功能?是否必须在同一功能内?还是可以分开?另外,有没有办法让我命名函数load / save?当我实际上想调用“加载”或“保存”时必须调用“ main”是很烦的。
我在网上找不到有人同时实现这两个功能的任何示例,而我发现的任何一个实现都总是通过主要功能执行。
任何建议将不胜感激。