【问题标题】:Cant read file name when Input through cmd in C ( through args[1] )在C中通过cmd输入时无法读取文件名(通过args [1])
【发布时间】:2017-12-06 14:49:38
【问题描述】:

这就是我在 cmd 中读取文本文件的方式。这是一个约束。

>gcc -std=c99 myproject.c -o myproject
>myproject<1.txt

我想要实现的是文件名“1.txt”作为字符串,以便我可以读取文件中的行数。 我查看了一堆解决方案,所有解决方案都建议使用 argv[1] 但是当我这样做时:

int main(int args, char*argv[]) {
printf("File: %s\n", argv[1]); }

它打印 null。

args 给出 1 并且 argv[0] 给出 myproject。 我不知道我还能尝试什么。我只想实现给定输入文件中的行数。请帮忙。谢谢!

【问题讨论】:

  • 你为什么把&lt;放在那里?删除它。
  • @tkausl 嗨,这就是脚本用于读取项目的方式。
  • myproject&lt;1.txt 不会将任何参数传递给myprojectmyproject 1.txt 会。

标签: c gcc command-line command-line-arguments object-files


【解决方案1】:

使用重定向 (

myproject 1.txt

...如果您只是想“计算行数”,请尝试使用命令wc -l,如果这是作业,请检查您是否以正确的方式处理文件:使用 fscanf、fgetc、fputs , fputc, ... 而不是“标准输入”的 scanf, gets, getc, putc, ...

【讨论】:

  • 这对我不起作用,因为它只是给出了文件名,但程序的其余部分会冻结。
  • 问题可能出在“程序的其余部分”中吗? (正如你所说的代码上面的代码“打印文件名”,这是它必须做的)
  • 程序的其余部分是什么?将该语法与您在 OP 中编写的短程序一起使用应该可以工作
猜你喜欢
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 2016-07-06
  • 2012-12-01
  • 2011-01-29
相关资源
最近更新 更多