[科技]NOI Linux下的基础编程操作

前言

由于冬眠营可能要强行使用NOI Linux,一脸蒙蔽。所以来学习一发。

鸣谢Wildrage对我的启蒙指导

鸣谢Cooook对我的悉心传授

由于笔者对于Windows系统较为熟悉,所以可能会类比Windows,如有错误,感性理解即可

编译调试程序

我们的操作主要是依赖NOI下的终端,由Ctrl+Alt+T调出,作用类似与Windows下的cmd

 

然后需要指定一个目录,以后需要在此进行一系列操作(这里以桌面为例)

输入:cd Desktop

然后我们对于一个程序,先编译运行,命名生成的扩展程序文件(以后都是调用此文件)

编译运行成功时:

指定目录(桌面)下:

上面的是代码,下面的是可执行程序(或许可以这么叫?)

编译错误时:

啊哈!发现221行dfs2前面少了一个“;”,抓紧改之!

好啦我们继续往下搞:

编译成功后我们就可以调用这个程序了

调用时格式为:"./name"

“name”为上面生成的扩展程序文件名,“ ./ ”相当于去调用运行它(或许和.exe类似?)

当程序写freopen的时候,窗口会输出运行结果,没写freopen的话可以从窗口手动输入,然后返回运行结果。

写freopen时:

不写时:

这就是我们写程序时进行编译运行的操作啦

对拍

对拍也是基于上述操作

在Windows下,我们是这么写对拍的:

#include <cstdlib>
int main(){
  while(true){
    system("make.exe > make.txt");
    system("force.exe <make.txt> force.txt");
    system("need.exe <make.txt> need.txt");
    if(system("FC need.txt force.txt"))break;
  }while(true);
}

在Linux下原理也是一样的。

对拍程序是这么写的:

# include <bits/stdc++.h> 
int main() {
	while (1) {
		system("./make > make.txt");
		system("./force < make.txt > force.txt");
		system("./need < make.txt > need.txt");
		if (system("diff force.txt need.txt")) {
			puts("Wrong Answer");
			break;
		}
		else printf("OK!");
	}while(1);
	return 0;
}

然后把我们要用到的程序依次编译运行一遍:

注意和Windows下一样,我们生成的可执行程序的名称要和对拍代码内要调用的名称一致

因为我们要调用的是它而不是代码OvO

然后我们调用对拍程序,就开始拍上啦!

当然如果有错的话对拍会停止的

大功告成啦(撒花)!

只是最初的理解使用。仅供参考。

posted @ 2018-01-26 11:49 Hallmeow 阅读(...) 评论(...) 编辑 收藏