当我在命令终端中运行以下命令时: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("%f\n", value);
}
fclose(file);
return 0;
}
基本上我正在尝试读取文件中的数字并将其打印出来。非常简单。
例如,temp.txt就像:
10 26 27 52 242
(这些数字应该在一列中)
等等。
答案 0 :(得分:2)
你可能需要一些关于gcc究竟是什么的解释,gcc用于将你的代码翻译成一个可运行的程序,它是一种代码转换器,用于代码到你的计算机的可执行指令。
您不需要编译文本文件,首先需要编译您的程序:
gcc practise.c -o your_binary_name
然后使用参数:
中的文件启动它./your_binary_name temp.txt
答案 1 :(得分:1)
使用gcc编译可执行文件,然后在输入文件上运行可执行文件。你得到一个错误b / c gcc试图将你的test.txt编译为C源代码。
所以:
gcc practice.c -o practice
./practice test.txt
答案 2 :(得分:0)
C是编译的而不是解释的语言。 GCC不会运行代码,例如 Python 或其他脚本语言。 GCC将C源代码转换为本机机器代码,当链接到目标运行时以创建可执行文件时,操作系统将单独并直接加载和执行,而无需支持来自海湾合作委员会。