暂停执行C代码的exe
我用C语言开发了一个简单的控制台实用程序,可以解析各种文本文件 IDE代码块 操作系统-windows 我打算分发它的可执行文件 可执行文件工作正常,但与从IDE执行时不同,执行不会在执行结束时暂停/等待击键 我尝试使用getchar()/system(“pause”),但执行没有在那里暂停 是否有其他方法在结束执行之前等待击键,以便用户可以查看输出?您可以使用 getchar() 两次,因为最后一个“\n”换行符很可能会被getchar()使用 或使用 scanf(“%c”) 用那额外的空间 在文件末尾。您可以使用 getchar() 两次,因为最后一个“\n”换行符很可能会被getchar()使用 或使用 scanf(“%c”) 用那额外的空间暂停执行C代码的exe,c,deployment,exe,C,Deployment,Exe,我用C语言开发了一个简单的控制台实用程序,可以解析各种文本文件 IDE代码块 操作系统-windows 我打算分发它的可执行文件 可执行文件工作正常,但与从IDE执行时不同,执行不会在执行结束时暂停/等待击键 我尝试使用getchar()/system(“pause”),但执行没有在那里暂停 是否有其他方法在结束执行之前等待击键,以便用户可以查看输出?您可以使用 getchar() 两次,因为最后一个“\n”换行符很可能会被getchar()使用 或使用 scanf(“%c”) 用那额外的空间
在文件末尾。不要使用
系统(“暂停”)
,因为它不可移植<另一方面,code>getchar应该可以工作。你能发一些代码吗?也许键盘缓冲区中有什么东西正在被你的一个且唯一的getchar
调用使用。不要使用系统(“暂停”)
,因为它不可移植<另一方面,code>getchar应该可以工作。你能发一些代码吗?可能键盘缓冲区中有一些东西被您的一个且唯一的getchar
调用占用。这取决于您的代码的其他部分如何从用户接收输入(即从stdin
读取)
如果您的程序没有从用户处读取任何内容,或者正在使用getchar()
进行读取,那么getchar()方法将可以正常工作
然而,一般的指导原则是,每个流的输入风格要一致。输入样式指的是面向字符(函数如getchar()
)、面向行(函数如fgets()
)、格式化(函数如scanf()
)或未格式化(函数如fread()
)。这些函数中的每一个函数根据输入执行不同的操作-例如getchar()
将新行作为整数值读取,fgets()
将在读取的字符串末尾保留新行(如果缓冲区足够长,scanf())
在遇到换行符时通常会停止,但将换行符留在流中等待下一次读取
净效果是不同风格的输入会相互作用,并可能产生奇怪的效果(例如,数据被忽略,而不是像您看到的那样等待输入)
例如,如果使用的是scanf()
,则可能还应该使用scanf()
使程序在最后等待。不是getchar()
——因为实际上可能有一个换行等待读取,所以getchar()
将立即返回,并且您的程序在终止之前不会暂停
上述情况也有例外(例如,取决于使用的格式字符串以及用户输入的内容)。但作为一条经验法则:从stdin
中读取数据的方式要保持一致,用户必须非常努力地停止程序暂停,然后才能终止
当然,一个更简单的替代方法是从命令行(例如CMD.EXE命令shell)运行程序。然后,当您的程序终止时,shell将接管,程序输出将对用户可见,因此您的程序不需要暂停。这取决于代码的其他部分如何接收来自用户的输入(即从stdin
读取)
如果您的程序没有从用户处读取任何内容,或者正在使用getchar()
进行读取,那么getchar()方法将可以正常工作
然而,一般的指导原则是,每个流的输入风格要一致。输入样式指的是面向字符(函数如getchar()
)、面向行(函数如fgets()
)、格式化(函数如scanf()
)或未格式化(函数如fread()
)。这些函数中的每一个函数根据输入执行不同的操作-例如getchar()
将新行作为整数值读取,fgets()
将在读取的字符串末尾保留新行(如果缓冲区足够长,scanf())
在遇到换行符时通常会停止,但将换行符留在流中等待下一次读取
净效果是不同风格的输入会相互作用,并可能产生奇怪的效果(例如,数据被忽略,而不是像您看到的那样等待输入)
例如,如果使用的是scanf()
,则可能还应该使用scanf()
使程序在最后等待。不是getchar()
——因为实际上可能有一个换行等待读取,所以getchar()
将立即返回,并且您的程序在终止之前不会暂停
上述情况也有例外(例如,取决于使用的格式字符串以及用户输入的内容)。但作为一条经验法则:从stdin
中读取数据的方式要保持一致,用户必须非常努力地停止程序暂停,然后才能终止
当然,一个更简单的替代方法是从命令行(例如CMD.EXE命令shell)运行程序。当你的程序终止时,shell将接管,程序输出将对用户可见,因此你的程序不需要暂停。谢谢你,Namit,我像你说的那样尝试了两次getchar,但按键没有停止执行。我尝试了你的建议,如下所示int main(){node*temp1,*temp2;char script[255],ch;char*dev;FILE*fp;//文件读取和解析逻辑//没有来自u