我正在开始一个C项目,我的教授希望我们使用以下格式来运行我们的程序:
./prog stop_words_dir < chapter.txt
Run Code Online (Sandbox Code Playgroud)
我的理解是,这意味着我正在执行一个名为program的程序prog,该程序将一个目录作为其参数(在本例中stop_words_dir)并使用该目录中指定的特定文件chapter.txt.
<而不是第二个参数有什么好处chapter.txt使用给定格式访问C程序?(我知道如何使用两个参数执行此操作)
- 我对么?
不是完全.shell(任何类似Unix的shell - Bash当然,还有Bourne,Korn和其他shell,甚至包括C shell系列)运行以prog当前目录命名的程序,以字符串stop_words_dir作为参数,并使用其标准输入读取从当前目录中的文件调用chapter.txt.
- 如果是这样,这种格式的Unix(更具体地说是Bash)是否具体?
使这个特定于Unix的唯一因素是使用/.在Windows上,使用本机shell,/会导致混淆(当然对于cmd.exe'shell').
- Windows中的等效命令是什么样的?
prog stop_words_dir < chapter.txt
Run Code Online (Sandbox Code Playgroud)
- 使用'<'而不是第二个参数有什么好处.
主要是shell打开文件并处理错误(如果它不存在).如果<未使用,您的程序将不得不进行打开,并处理错误.其次,您可以使用just scanf()和getchar()read来读取标准输入,而不是需要使用fscanf()或getc()(或亲属)来读取数据.这只是一个小小的好处.通常,您编写程序以便它处理任何给定的文件流,并stdin在程序需要从标准输入读取时简单地传递.这个功能更通用 - 并且可以重复使用.
- 我将如何访问
chapter.txtC程序(使用给定的格式.我知道如何使用两个参数执行此操作)?
使用标准I/O函数从标准输入读取,例如scanf()或getchar(),或使用通用I/O函数,但指定stdin为文件流(例如fgets()或fread()- 或fscanf()或getc(),或......).