如何使用" cat>在终端中将信息写入sitin.txt? "然后它会输出

时间:2016-02-02 08:59:58

标签: c

我是C ++的新手(今天开始,只做了大约10分钟)。如何在终端上编译和运行?这是一个计算可用座位数(r * s)的基本程序。第一个输入行是行数和座位数,第二个输入行是门票数(人数)。然后输出将显示有多少人坐着然后分别站立。

#include <stdio.h>
int main() {
        int r, s, sit,stand,tickets;
    freopen("sitin.txt", "r", stdin);
    freopen("sitout.txt", "w", stdout);
    scanf("%d %d", &r, &s);
    scanf("%d", &tickets); 
    printf("%d %d\n",r*s,tickets-(r*s));
    return 0;
}

3 个答案:

答案 0 :(得分:2)

使用gcc编译器/链接器:

gcc -g -c myfile.c -o myfile.o -I.

编译myfile.c以生成目标文件myfile.o

然后使用:

gcc -g myfile.o -o myfile

链接文件myfile.o以生成可执行文件myfile

然后使用

执行它
cat sitin.txt | ./myfile > sitout.txt

以上行确实:1)调用cat实用程序,将sitin.txt文件作为参数传递给它。 2)将stdout的{​​{1}}重定向到myfile的cat。 3)myfile的stdin被重定向到stdout文件

请不要像问题所示更改sitout.txt和stdout stdin cat if going to use重定向`的初始文件指针。

答案 1 :(得分:1)

要在Unix / Linux环境中编译C代码,您可以使用GCC(Gnu C编译器):

srcfile.c

其中-o是包含源代码的文件的名称。 如果您不使用a.out选项,gcc将生成名为gcc --h的可执行(二进制)文件。

通过运行man gcc#include <stdio.h> int main(void) { int r, s, sit,stand,tickets; scanf("%d %d", &r, &s); scanf("%d", &tickets); printf("%d %d\n",r*s,tickets-(r*s)); return 0; }

查看更多选项

修改

或许,以下信息对您有用。

如果您创建代码

code.c

将其保存到文件 gcc code.c 将其编译为

  ./a.out <sitin.txt >sitout.txt

并以

运行
a.out

您的程序(scanf)将从sitin.txt获取printf函数的输入(文件必须可供读取)并将sitout.txt函数的输出放入{{ 1}}(将创建文件)

答案 2 :(得分:0)

这是纯粹的C风格编码,因此我们要求您将标签从c ++编辑为c。

其次,在linux终端上编译并运行单个命令时使用

gcc -g -Wall <program_name.c> -o <binary name>

然后,要运行二进制文件,请使用以下命令:

 ./<binary name>

第二种方法是首先使用编译

创建.o文件
gcc -g -Wall -c <program_name.c>

然后使用链接作为

gcc <program_name.o> -o <binary name>

现在,您可以将二进制文件作为

运行
   ./binary name