如何通过重定向从文件中读取每一行?

时间:2019-04-27 00:38:32

标签: c

我正在尝试使用重定向从test.txt中读取每一行。 3是模式。不允许使用fopen()。我应该将什么参数传递给fgets()?

这是用于Linux服务器

// stdin:     ./main  3  < folder/test.txt

int main(int argc, char* argv[])
{
  char str[1000];
  FILE * fp;

  fgets(str, 1000, ???);
  return 0;
}

2 个答案:

答案 0 :(得分:2)

  

不允许使用fopen()

不允许使用

fopen(),因为您是从stdin获取输入的。那就是那个命令行

./main 3 < folder/test.txt

确实。

它将test.txt的内容作为stdin传递到您的程序。您只需使用stdinfgets()阅读。

答案 1 :(得分:1)

对于重定向输入,请将 if (this.pos.y + sz > other.pos.y && this.pos.y <= other.pos.y+sz && this.pos.x < other.pos.x+sz && this.pos.x + sz > other.pos.x) 传递到stdin

fgets()