c++ - 将文件加载到输入流中并使用 scanf()

标签 c++ scanf

我是 c++ 的新手。

我阅读了一些有经验的 C++ 编码人员的代码示例,并注意到他们运行了一个以 scanf 开头的文件,该文件读取了大量输入。

但是,他们没有使用任何指定的 ifstream 来读取文件,他们似乎只是运行 scanf,就好像整个输入 .txt 文件已经在流中一样。

这是因为他们正在使用一些特殊的 IDE,您可以在其中将输入文件加载到标准流中吗?

我只是想运行他们的代码来复制他们正在做的事情,但我需要一些方法来读取 5000 多行的文本文件,然后对其运行 scanf。

我该怎么做。我没有使用任何类型的 IDE,只是 Notepad++ 。如果有人推荐一个 IDE,我会接受它,但除此之外,我只是想获得有关如何执行此操作的建议。谢谢。

最佳答案

首先,如果他们仍在使用 scanf(),则他们不是有经验的 C++ 程序员。如果他们有经验,他们会使用 C++ I/O 设施而不是遗留的 C 设施。

话虽如此,如果您可以在程序上进行重定向,则可以很容易地使用接受标准输入的函数(scanf()cin),使用行喜欢:

myProg <myInputFile.txt
someOtherProgWhichProducesOutput | myProg

这会将文件 myInputFile.txt“附加”到 myProg 程序的标准输入,或者从另一个程序获取输出并将其提供给 的输入code>myProg,它使 UNIX 及其兄弟(在此上下文中包括 Windows,因为它也具有重定向和管道)如此强大,允许您从相对简单的命令中将复杂的管道串在一起。

关于c++ - 将文件加载到输入流中并使用 scanf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028866/

相关文章:

C++内联初始化成员变量的正确方法

c++ - Thrust 对主机上运行的自定义仿函数的结果不正确

c++ - std::unique 可以用来确定自定义类的对象是否具有相同的值吗?

c - scanf 无法检测到 EOF 但 getchar 能够检测到 EOF 输入?

C 从文件中读取一行的一列

c - 扫描: "%[^,]s"与 "%[^,],s"

c++ - 一旦达到数据类型的限制,是否有一种简单有效的方法来动态更改数据类型?

c++ - 分配给结构映射的语法

c - 我该如何让这个指针工作?

c - 存储由零和一组成的大整数