C文件读取不正确



当我在命令终端中运行以下命令时: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的支持。

相关内容

  • 没有找到相关文章

最新更新