逐行读取文件 - 文件在哪里?

时间:2017-06-22 18:39:56

标签: c macos terminal

我很高兴在Mac上使用终端使用GNU C.

我已经使用标准代码逐行读取文件并通过" file.txt"引用文件。

我可以编译源代码,但是当我执行代码时,它无法找到file.txt。我已将该文件放在与源和可执行文件相同的目录中。我应该添加完整的目录路径吗?我试过了: -

" /Users/Swiss/documents/swdev/projects/code_ex/file.txt"

但是出现了与使用" file.txt"相同的错误。

我得到的错误是: -

-bash:./ read_file.lbl:没有这样的文件或目录

我假设它找不到它的file.txt - 或者是其他的东西?

代码是: -

#include <stdio.h>
int main ( void )
{
   static const char filename[] =  "/Users/Swiss/documents/swdev/projects/code_ex/file.txt";
   FILE *file = fopen ( filename, "r" );
   if ( file != NULL )
   {
      char line [ 128 ]; /* or other suitable maximum line size */
      while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
      {
         fputs ( line, stdout ); /* write the line */
      }
      fclose ( file );
   }
   else
   {
      perror ( filename ); /* why didn't the file open? */
   }
   return 0;
}

热烈欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

您的计划是正确的。如果源文件名为read_file_lbl.c,请运行以下命令进行编译并从终端运行:

$ gcc -Wall -o read_file_lbl read_file_lbl.c
$ ./read_file_lbl

如果使用gcc read_file_lbl.c编译程序,编译器会命名可执行文件a.out,因此尝试运行./read_file_lbl会失败,因为shell找不到这样的可执行文件。

另请注意,gcc实际上是指向您环境中clang的链接。您可以查看:

$ gcc --version