- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是我的代码,但我可以通过命令行编译并运行该程序。在windows下exe文件也是可以运行的。但是,我无法在任何 unix 系统(ubuntu 或 osx)上的终端之外运行编译后的代码,我对 C 相当陌生,因此我们将不胜感激。谢谢!
澄清:
在 Ubuntu 中我运行
gcc game.c -o game
./game
然后就完美运行了。但是如果我通过 GUI 找到游戏文件并双击它,它不会执行任何操作。我习惯在 Windows 上它会调出命令并运行程序,就像从 cmd
运行它一样。
代码(这是一个简单的猜数字游戏):
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int guessed = 0;
int guesses = 0;
int total_guesses = 0;
int games_played = 0;
int range_top = 10;
int generate_random_number()
{
srand(time(NULL));
return (rand() % range_top);
}
void take_guess(int num)
{
int guess;
printf("what is your guess: ");
scanf(" %i",&guess);
if(guess == num)
{
guessed = 1;
}
else if(guess>num)
{
printf("Your guess was too high,\n");
}
else
{
printf("Your guess was too low.\n");
}
}
void print_stats()
{
printf("\n\n\nGames Played: %i\nTotal Guesses: %i\nAverage Guesses Per Game: %f\n\n\n\n",games_played,total_guesses,(double)total_guesses/games_played);
int i = 5;
while(i>0)
{
printf("exiting in %is\n",i);
i--;
sleep(1);
}
}
int main(void)
{
printf("This is a game in C\n");
printf("Would you like to play? (y/n): ");
char play;
scanf("%c",&play);
while(play == 'y')
{
printf("I am thinking of a number between 0 and %i\n",range_top);
int num = generate_random_number();
while(guessed ==0)
{
take_guess(num);
guesses++;
}
games_played++;
total_guesses+=guesses;
printf("It took you %i guesses to win.\n",guesses);
printf("Would you like to play again? (y/n): ");
scanf(" %c",&play);
guessed = 0;
guesses = 0;
}
print_stats();
}
最佳答案
But if I go through the GUI to the game file and double click it, it doesn't do anything
你怎么知道它没有运行?我敢打赌它确实运行,但由于它不是在任何终端(命令行窗口)的上下文中运行,所以你只是看不到它的输出。这就是 Linux(以及一般的 Unix)的工作原理。
Windows 区分 GUI 和命令行应用程序,在后一种情况下会自动带来控制台窗口。不幸的是(幸运的是?),Unix 中并非如此。
如果您想实现 Windows 行为,您可以:
Create a launcher for your application 。这将允许您指定自定义图标等。
创建一个 shell 脚本来调用终端和其中的应用程序:
game.sh
:
#!/bin/bash
gnome-terminal -e "./game"
请注意,并非每个人都会安装 gnome-temrinal
,因此您可能需要调整脚本以支持更多终端模拟器(xterm
、rxvt
,对于 KDE 用户可能是 konsole
)。
关于c - 在unix上运行C程序而不是在命令行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028877/
我是一名优秀的程序员,十分优秀!