linux 将当前目录中的源文件sort.c编译为可执行文件sort
时间: 2023-08-20 21:31:10 浏览: 45
假设你当前所在的目录中有一个名为`sort.c`的源文件,你可以使用以下命令将其编译为可执行文件`sort`:
```shell
gcc sort.c -o sort
```
上述命令中,`gcc`是用于编译C语言程序的编译器,`sort.c`是需要编译的源文件,`-o`选项指定输出文件名,`sort`是输出文件的名称。执行以上命令后,如果没有错误信息,则会在当前目录生成一个名为`sort`的可执行文件。
相关问题
编写一个java程序,从一个文件中读入单词(即:以空格或回车换行分隔的字符串),并对单词进行排序,删除重复出现的单词,然后将结果输出到另一个文件中。 【输入形式】 源文件名和目标文件名分别为sort.in和sort.out,则命令行为:sort sort.in sort.out。 程序将从当前目录下sort.in文件中读入单词。 【输出形式】 对单词进行排序,删除重复出现的单词,然后将结果输出到文件sort.out中。 【输入样例】 假如sort.in文件内容如下: rrr sss aaa bbb ccc ddf aaa dd 【输出样例】 sort.out文件内容为: aaa bbb ccc dd ddf rrr sss 【样例说明】 读入文件sort.in,做适当的排序,并删除重复出现的单词,输出到文件sort.out
好的,这是一个简单的Java程序,可以实现您的要求:
```java
import java.io.*;
import java.util.*;
public class SortWords {
public static void main(String[] args) throws IOException {
// 从命令行参数中获取源文件名和目标文件名
String inputFileName = args[0];
String outputFileName = args[1];
// 读入源文件中的单词
BufferedReader reader = new BufferedReader(new FileReader(inputFileName));
String line = reader.readLine();
List<String> words = new ArrayList<>();
while (line != null) {
String[] tokens = line.split("[\\s]+");
for (String token : tokens) {
if (!token.isEmpty()) {
words.add(token);
}
}
line = reader.readLine();
}
reader.close();
// 对单词进行排序,并删除重复出现的单词
Set<String> uniqueWords = new HashSet<>(words);
List<String> sortedWords = new ArrayList<>(uniqueWords);
Collections.sort(sortedWords);
// 将结果输出到目标文件中
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFileName));
for (String word : sortedWords) {
writer.write(word);
writer.newLine();
}
writer.close();
}
}
```
您可以将上述代码保存为`SortWords.java`文件,然后使用JDK编译器编译并运行它。例如,假设您已经将`SortWords.java`文件保存在当前目录下,可以使用以下命令编译它:
```
javac SortWords.java
```
然后,使用以下命令运行它:
```
java SortWords sort.in sort.out
```
这将从文件`sort.in`中读入单词,对它们进行排序并删除重复出现的单词,然后将结果输出到文件`sort.out`中。
以上述代码为例,用C语言实现多文件编程:在工程中添加头文件1.h,在该文件中声明两个函数,int fun(int n);void sort(int a[],int n);保存。在工程中添加新文件1.cpp,将fun()函数和sort()函数的定义移至1.cpp,并在该文件的前面包含头文件1.h(#include”1.h”)。在主函数的文件中的前面也包含1.h头文件。然后编译运行该工程,观察输出结果。
以下是多文件编程的C语言代码实现:
头文件 `1.h`:
```c
#ifndef _1_H_
#define _1_H_
void sort(int a[], int n);
int fun(int n);
#endif
```
源文件 `1.cpp`:
```c
#include "1.h"
// 从大到小排序数组
void sort(int a[], int n) {
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if (a[i] < a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
// 将自然数拆分成单个数字并排序成最大数
int fun(int n) {
int a[4];
int i = 0;
while (n > 0) {
a[i++] = n % 10;
n /= 10;
}
sort(a, 4);
return a[0]*1000 + a[1]*100 + a[2]*10 + a[3];
}
```
主程序文件 `main.c`:
```c
#include <stdio.h>
#include "1.h"
int main() {
int num;
printf("请输入一个4位自然数:");
scanf("%d", &num);
int result = fun(num);
printf("各位数字组成的最大数为:%d\n", result);
return 0;
}
```
程序中定义了头文件 `1.h` 和源文件 `1.cpp`,其中头文件中声明了两个函数 `sort()` 和 `fun()`,源文件中定义了这两个函数的具体实现。在主程序文件 `main.c` 中,我们通过 `#include "1.h"` 的方式将头文件包含进来,然后调用 `fun()` 函数得到各位数字组成的最大数,并输出到屏幕上。
编译命令:`gcc main.c 1.cpp -o result`,运行命令:`./result`。