c - 如何在控制台中将文件传递给 .exe

标签 c file console

我目前正在通过阅读《C 编程语言》来学习 C。 我在使用 getchar()/putchar()/EOF 进行输入和输出的练习中遇到问题。看来用练习制作的程序应该用于文件。但是一旦我有了我的 .exe 我只知道如何启动“原始”.exe,我想做一些类似的事情: myProgram.exe file.txt 这样程序就可以读取文件作为输入。不幸的是,我尝试执行此操作的方法不起作用,您能告诉我如何正确执行此操作吗?

我想在文件上使用的程序 (这是书中的代码,没有 int main() 或其他任何内容):

#include <stdio.h>

main()
{
    int c;
    while((c = getchar()) != EOF)
    {
         putchar(c);
    }
}

我使用的是 Windows 8.1,使用 cl(Visual Studio 编译器)版本 19 x64。

最佳答案

您需要使用命令行参数

 int main(int argc, char** argv)
{
//argc = number of arguments on command line

//argv[] = the file names on the command line. Note* the exe will always be argv[0]
}

在您的程序中,您可以将 argv[1] 引用为传入的文本文件。

./a.out myTextFile.txt

此处 argc = 2 且 argv[0] = a.out 而 argv[1] = myTextFile.txt

我建议您在文件读取期间修改代码以包含此内容。

关于c - 如何在控制台中将文件传递给 .exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33527418/

相关文章:

c++ - 在 Windows 环境中从 C 或 C++ 访问 COM 接口(interface)

c - 我是否正确使用了 mutex_trylock?

objective-c - 将文件读入数组

file - 在不立即将整个文件加载到内存中的情况下,分块读取大文件的最有效方法是什么?

c++ - 如何在 C++ 中将输入流的前缀复制到不同的流?

c++ - 有没有一种方法可以将宏名称作为参数传递给嵌套宏,而不会在扩展最外层宏时扩展它们?

c - 如何使用设备的文件描述符获取设备的 devnode

javascript - 如何在 Chrome 中禁用 console.trace 树?

java - 是否可以在控制台中打印Javadoc?或者将 Javadoc 内容导出到字符串?

c# - 如何更改附加控制台的窗口大小?