我如何让GCC工作?

时间:2015-11-03 04:57:17

标签: c gcc

我使用Vim作为我的编辑器而GCC作为我的编译器,但它不能正常工作。假设我正在制作一个基本程序来确定一个数字是奇数还是偶数。这是我的代码:

#include <stdio.h>

int main(int argc, char argv[])
{
    int i;

    printf("Enter a number: ");
    scanf("%d\n", &i);

    printf("%d\n", i);
    if(i % 2 == 0)
    { 
        printf("Your number is even.\n");
    }
    else if(i % 2 != 0)
    {
        printf("Your number is odd.\n");
    }
    else
    {
        printf("Invalid input.\n");
    }

    getchar();

    return 0;
}

我不确定我是否编程错了,或者gcc不是一个好的编译器,或者其他什么。我正在运行linux,我用windows双启动。现在我按ctrl-d停止进程,然后才打印回我的号码,并判断它是奇数还是偶数。它不仅仅是这个,很多其他类似格式的程序似乎都是这样做的。

~ $ ./test
Enter a number: 45 
45                         //I press enter, nothing happends. Ctrl-d 
Your number is even.       //ctrl-d again
~ $ 

所以我要问的是,是否有一种方法可以对其进行编程,以便我不必退出程序以使其工作,或者是否有另一个编译器不能使用它。有这个问题吗?我正在运行Ubuntu 14.04双启动Windows 8.1。

2 个答案:

答案 0 :(得分:2)

\n格式的

scanf表示“读取直到遇到非空白字符,然后忽略它们”。删除它并制作阅读"%d"的格式。

答案 1 :(得分:1)

gcc从vim工作,

转到vim命令提示符

shell gcc <and all needed parameters>

或打开另一个命令窗口

将其设置为与正在编辑的程序相同的目录

gcc <and all needed parameters>

通常,尝试将编译步骤与链接步骤分开。 I.E.编译:

gcc -c <mySource.c> -Wall -Wextra -pedantic -std=c99 -o mySource.o 

如果有任何头文件,那么除了默认的'include'路径中的头文件之外,再添加

-I<pathToHeaderFile>

通常位于同一目录中,所以:

-I.

然后链接:

gcc mySource.o -o mySource 

如果您打算进行任何调试,可以将-ggdb参数添加到这两行。

添加任何库目录然后在链接步骤追加

-L<pathToLibrary>

在任何库参数之后添加任何库然后在链接步骤附加:

-l<shortLibName>

vim的初始化文件可以包含通过某些击键组合调用gcc的必要信息,但我并不完全熟悉这些细节。