C++ 如何在使用gdb进行调试期间从stdin读取数据?

C++ 如何在使用gdb进行调试期间从stdin读取数据?,c++,c,gdb,stdin,C++,C,Gdb,Stdin,我正在运行gdb(或cgdb),但在调试期间,我需要从stdin获取一些数据。 那么,当我在gdb中调试程序时,如何插入一些文本或数字作为程序的输入呢 提前谢谢 如果你是从一个外壳上做的,你会这样做: gdb myprogram gdb> run params ... < input.txt gdb myprogram gdb>运行参数…

我正在运行gdb(或cgdb),但在调试期间,我需要从stdin获取一些数据。 那么,当我在gdb中调试程序时,如何插入一些文本或数字作为程序的输入呢


提前谢谢

如果你是从一个外壳上做的,你会这样做:

gdb myprogram
gdb> run params ... < input.txt
gdb myprogram
gdb>运行参数…<输入文件

我如何输入一些数据而不事先将其保存在txt文件中?@Banish,您不需要在
gdb
中有任何特殊的内容来读取
stdin
只要使用
scanf
fgets
或您希望在程序中使用的任何方法。您可以附加到已经运行的程序吗?如果您没有运行gdb,您将如何执行?你可能可以用gdb做一些类似的事情,如果不一样的话。例如,如果我使用“scanf”,并且我正在尝试调试程序,那么在某个时刻,stdin会提供一些数据。因此,当我跨过scanf行并输入一些内容时,我无法继续调试。