当我在命令终端中运行以下命令时:gcc practice.c temp.txt
我得到以下错误:
/usr/local/binutils/2.21/bin/ld:temp.txt: file format not recognized; treating as linker script
/usr/local/binutils/2.21/bin/ld:temp.txt:1: syntax error
collect2: ld returned 1 exit status
这是我的C代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LEN 1024
int main(int argc, char **argv) {
FILE *file;
char line[MAX_LEN];
float value = 0;
file = fopen(argv[1], "r");
while (fgets(line, MAX_LEN, file) != NULL) {
sscanf(line, "%f", &value);
printf("%fn", value);
}
fclose(file);
return 0;
}
基本上,我试着读取文件中的数字,然后把它们打印出来。非常简单。
例如,temp.txt将类似于:
10262752242
(这些数字应该在一列中)
等等。
您可能需要一些关于gcc的真正含义的解释,gcc用于将代码翻译成可运行的程序,它是一种将代码翻译为计算机可执行指令的翻译器。
你不需要编译文本文件,你首先需要编译你的程序:
gcc practise.c -o your_binary_name
然后用你的文件启动参数:
./your_binary_name temp.txt
使用gcc编译可执行文件,然后在输入文件上运行可执行文件。您收到一个错误b/c gcc试图将test.txt编译为c源代码。
因此:
gcc practice.c -o practice
./practice test.txt
C是编译的语言,而不是解释的行代码,例如Python或其他脚本语言可以运行。GCC将C源代码转换为本地机器代码,当将链接到目标运行时以创建可执行文件时,操作系统将单独直接加载并执行该代码,而不需要GCC的支持。