C文件读取不正确

时间:2014-04-15 18:21:52

标签: c text io stream

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

(这些数字应该在一列中)

等等。

3 个答案:

答案 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源代码转换为本机机器代码,当链接到目标运行时以创建可执行文件时,操作系统将单独并直接加载和执行,而无需支持来自海湾合作委员会。