编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 sytem("pause")什么是大交易?
指数 -> 编程,C ++ -> C ++帮助
转到页面 1, 2, 3  下一页
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
Mirhagk.




邮政发布: 2011年2月21日星期一1:10 PM  帖子主题:sytem("pause")什么是大交易?

是的,有替代方案,例如使用conio.h _getch。但为什么???? Conio.h仍然是特定于平台的,并不告诉我这是因为它很慢!!!!!!!这是一个疯狂的暂停命令,它应该停止所以谁关心!!!!!!!!!!

我同意系统(“暂停”)不应仅在分布的EXE中使用,因为它们可能已定义其自己的路径变量来覆盖系统。

但是,在调试时暂停程序暂停程序是一种很好的方法,因为它只需要一行代码。这是将程序员介绍到系统命令的好方法。正如您可以使用此功能,然后就像“btw,键入命令提示符”,然后您可以教导它们,系统()命令基本上是命令提示符的接口,因此您可以从系统中执行事项您可以从命令行执行。

是不要将它用于最终项目,但谁关心测试和学习目的。

对不起,我只是讨厌阅读人们争辩的东西(“暂停”)太慢。我喜欢*空白盯着*
赞助
赞助
赞助
赞助
魔鬼




邮政发布: 2011年2月21日星期八:下午3:29  帖子主题:Re:sytem("pause")什么是大交易?

考虑: http://www.gidnetwork.com/b-43.html

大多数参数是您不必明确暂停程序以让用户看到输出无论如何 - 它应该只坐在IDE中的终端/终端仿真器中。

另一个有价值的论点是它不是跨平台,它没有广泛使用,并且它要求您在运行时加载更多库。

如果您使用平台特定的东西,您(通常)(通常)很少或根本限制自己。您最终会发现您希望您的代码运行其他地方(或您的一个客户将会),然后您是众所周知的溪流。如果你首先写了它,那么你就不会有任何麻烦。

另外,如果您以跨平台方式编写代码,这意味着任何人都可以为您的项目做出贡献。如果您的朋友想要在具有系统的代码上工作(“暂停”)洒在一起,他们将首先要修复所有这些调用,然后才能完成任何实际的工作。最好是第一次做事,尽可能稍后避免更大的问题。
BBI5291




邮政发布: 2011年2月21日星期一:下午4:36  帖子主题:Re:sytem("pause")什么是大交易?

Mirhagk @ Mon 21,211,2010下午1:10写道:
这是将程序员介绍到系统命令的好方法。正如您可以使用此功能,然后就像“btw,键入命令提示符”,然后您可以教导它们,系统()命令基本上是命令提示符的接口,因此您可以从系统中执行事项您可以从命令行执行。
无论如何,我真的不认为这是一个有效的论点。例如,我可以没有使用相同的逻辑介绍'cout<< "Hello, World!" <<endl;'是将程序员推向操作员重载的好方法吗? (我认为关于每个人都会同意它 不是。)

有些时候系统()可能正是您需要的 - 它是一个独立于平台的方式来运行命令,即使您只需编码一个平台,它仍然可以更方便(例如在Linux上,它比'如果(!fork(!fork()){exec(...);}'结构)更容易,但在执行后暂停程序不应该是其中之一。一个很好的例子......可能确实是介绍某些东西的好方法,但一个糟糕的例子不是。





邮政发布: 2011年2月21日星期八:下午6:23  帖子主题:Re:sytem("pause")什么是大交易?

部分问题是大多数新的程序员都不会acauatact地了解系统命令是或在这种情况下做什么。


你应该打印吗?

系统(“回声Hello World”);


你做的基本数学和输出它:

系统(“设置/ a((10 + 5)/ 2)* 10”);


如果您将要调用批量脚本,您可能会拨打批处理脚本,以便在C中均未通缉。


调用具有系统的OS特定命令可能甚至不可兼容在同一操作系统的不同版本之间,甚至可以在具有相同版本的操作系统的所有计算机上工作,但使用不同的程序安装或指向它的路径。

CANDEIER以下示例:

系统(“telnet compsci.ca”);

在XP系统上,这可能会打开Comand Line Telnet客户端并连接到Compsci.ca。但是,在Windows Vista或7上,除非用户安装了Telnet程序,否则可能会产生错误。还可以说明,如果用户安装了自己的Telnet命令,这可能会产生未知结果。也许我的telnet命令只是打印“Hello World”,也许它是直接润转A 5等。

现在让我们考虑与系统的Seucrity问题。让我们说你正在制作一个程序,它将在Windows系统上作为adminstor用户运行。我们还假设该程序调用Progry.exe,该程序是一个安全的程序甚至是Windows的一部分。 CONEDIER如果未在Good.exe上正确设置,或者它们是某些未实现的Securtiy Experity,则允许有限用户将Good.exe的轮集替换为Bad.exe。您有效地给出了Limited用户对系统的完全访问,因为您的程序将调用Good.exe,现在已被从管理级别运行的有限用户的程序替换为程序。它甚至没有Nessarly必须是一个允许或安全问题,允许您写入Good.exe但只需更改调用系统Comand时正在使用的路径设置,或将文件放入路径上的路径上的目录中名称good.exe也许Enoguh将其重定向到恶意程序。

他们的deftaly是系统命令的有效用例。但是,您需要考虑更系统的因素将其抛入您的代码。我需要这个程序是否独立于平板?如果是的话,我正在呼叫平台独立的命令?该程序的用户是否已安装此命令?它是否添加到系统路径或我需要直接调用它? Comand会在所有我想要运行它的系统上产生相同的结果吗?我关心返回码,所有系统都会是相同的吗?而且最inmportaly,是他们在c中做到这一点的更好方法?

只是投掷“系统(”暂停“)”在新的程序员上,除了它的任何探测器之外,它计划将导致糟糕的编程部分,无知对他们的节目如何工作,并阻碍他们对合法任务的正确方式的学习在C.
计算机科学加拿大 帮助在C,C ++,Java,PHP,Ruby,图灵,VB等内容中进行编程!
rdrake.




邮政发布: 2011年2月21日星期八:下午8:39  帖子主题:Re:sytem("pause")什么是大交易?

我会咬人。

Mirhagk @ Mon 21,211,2010下午1:10写道:
是的,有替代方案,例如使用conio.h _getch。但为什么???? Conio.h仍然是特定的平台,
真相。

Mirhagk @ Mon 21,211,2010下午1:10写道:
并不告诉我这是因为它很慢!!!!!!!这是一个疯狂的暂停命令,它应该停止所以谁关心!!!!!!!!!!
谁告诉你的?

Mirhagk @ Mon 21,211,2010下午1:10写道:
我同意系统(“暂停”)不应仅在分布的EXE中使用,因为它们可能已定义其自己的路径变量来覆盖系统。
不仅如此,而且它只在Windows计算机上工作。

Mirhagk @ Mon 21,211,2010下午1:10写道:
但是,在调试时暂停程序暂停程序是一种很好的方法,因为它只需要一行代码。
protip:如果使用Visual Studio,请使用Ctrl + F5运行程序以在不暂停行的情况下获得相同的行为。我的一些学生们展示了我。

Mirhagk @ Mon 21,211,2010下午1:10写道:
这是将程序员介绍到系统命令的好方法。正如您可以使用此功能,然后就像“btw,键入命令提示符”,然后您可以教导它们,系统()命令基本上是命令提示符的接口,因此您可以从系统中执行事项您可以从命令行执行。
不同意。人们可以争辩说使用命令提示更快。

Mirhagk @ Mon 21,211,2010下午1:10写道:
是不要将它用于最终项目,但谁关心测试和学习目的。
引用完整性。

Mirhagk @ Mon 21,211,2010下午1:10写道:
对不起,我只是讨厌阅读人们争辩的东西(“暂停”)太慢。我喜欢*空白盯着*
谁说这样的事情?

请享用。





邮政发布: 2011年2月21日星期一:下午11:02  帖子主题:Re:sytem("pause")什么是大交易?

rdrake. @ 2011年2月21日,下午8:39写道:


Mirhagk @ Mon 21,211,2010下午1:10写道:
是的,有替代方案,例如使用conio.h _getch。但为什么???? Conio.h仍然是特定的平台,
真相。


如果您必须执行此操作(我没有以任何方式重新调整),则应使用来自STDIO.h的GETCHAR()for C程序。它是便携式的,没有疯狂的系统调用。你甚至可以看到他们击中的键。


rdrake. @ 2011年2月21日,下午8:39写道:

Mirhagk @ Mon 21,211,2010下午1:10写道:
并不告诉我这是因为它很慢!!!!!!!这是一个疯狂的暂停命令,它应该停止所以谁关心!!!!!!!!!!
谁告诉你的?


我没有告诉他我的自我,但它很慢,并使用更多的铭文。您可以看到链接魔鬼的解释给出: http://www.gidnetwork.com/b-43.html

我认为这更像是一个酸痛,而不是特别是特别是暂停案例。


引用:
protip:如果使用Visual Studio,请使用Ctrl + F5运行程序以在不暂停行的情况下获得相同的行为。我的一些学生们展示了我。


这是在Visual Studio中应该在Visual Studio中进行的,而是添加暂停。 Ctrl + F5在不调试的情况下运行项目,如果您想要使用调试相同的效果,可以在程序结束时添加一个断点,或者应该有一个选项,其中一些选项在vs到完全暂停的地方。几乎所有其他现代IDE都有一个Simualr选项,如果您使用的命令行他们没有理由暂停。

我遗憾地发现了许多学生在IDE上过分贬值,最终不知道如何从Comand线上遵循甚至是IDE之间的差异,共同组织等。


系统的另一个问题(“暂停”);或者暂停未割伤的程序的想法,它使得在Bash脚本,批处理脚本或从另一个程序调用它时,它会使程序更难。



编辑: 任何读取这一点都可能希望查看GIDNetwork.com的“在C / C ++中避免的东西”教程: http://www.gidnetwork.com/b-56.html
计算机科学加拿大 帮助在C,C ++,Java,PHP,Ruby,图灵,VB等内容中进行编程!
Xupicor.




邮政发布: 2月22日星期二8:53 PM  帖子主题:Re:sytem("pause")什么是大交易?

如果您想要一个可靠的“暂停”功能,您应该自己写它。简单的:

C ++:
空白 Pause() {
    std::COUT. << “按ENTER键继续。\ n";
    std::cin.同步();
    std::cin.忽略();
    std::cin.同步();
}

它将在不管操作系统中工作,只要您可以使用IOStream,如果您在输入流缓冲区内部有内容(但它将清除它),它不会依赖于非标准和旧Borland Conio。 H。

你应该做的是使用更好的IDE,如Visual C ++,代码::块,NetBeans C / C ++ ......这三个将在申请完成后保持终端为您打开,使上述憎恶过时。
或者,只需打开控制台(在Windows上使用Console2终端进行一个不错的替代方案,您将能够为方便起见设置具有启动程序的选项卡,并在那里运行应用程序。我的意思是,这是多么难,你键入名称一次,按<Enter> - 下次你想运行它,只是点击<Arrow Up> and follow with <Enter>.
我保证不会消失。不,这不是魔法。 眨眼


引用:
我遗憾地发现了许多学生在IDE上过分贬值,最终不知道如何从Comand线上遵循甚至是IDE之间的差异,共同组织等。
是的,这有点令人沮丧,大量的新手程序员不知道你真的不需要一个德德来编译东西。在各种编程板上,我可以看到关于IDE和编译器的困惑。这些术语的许多次数用作它们是相同的。

编辑:
此外,如果用户机器有一个名为“暂停”(PAUSE.EXE,PAUSE.BAT等)的恶意应用程序或脚本,则该路径上的脚本如何?你很高兴地用system()称之为,并使您的应用程序在每次运行时都在做出非常顽皮的事情。然后,您可以获得您的应用程序恶意的反馈意见。您可以在您的机器上调试死亡,但您也不会再现相同的行为,除非您也得到“感染”。 眨眼
Mirhagk.




邮政发布: 2011年2月23日星期三上午10:33  帖子主题:Re:sytem("pause")什么是大交易?

丹@ Milb 21,211,2011年11:02 PM写道:
如果您希望使用调试相同的效果,则可以在程序结束时添加一个断点



严重地????添加断点应该更快?它应该更加可靠吗?你到底在想什么!!!!!!!!!!!

我在说系统暂停应该使用而不是一个断点,让程序最小化的烦人,IDE跳转到你的代码,并且你必须回去打开它才能看到你的输出,然后看返回IDE并继续执行0秒钟以返回代码。

丹,对不起,我很抱歉,这是我听过的最愚蠢的事情。

我的观点是,人们争论错误的论点。就像它太慢了。每篇文章都说,他们严重的蠢货。
赞助
赞助
赞助
赞助
TheGuardian001.




邮政发布: 2011年2月23日星期三11:57 AM  帖子主题:Re:sytem("pause")什么是大交易?

Mirhagk @ 2011年2月23日星期三上午10:33写道:

丹,对不起,我很抱歉,这是我听过的最愚蠢的事情。

你显然不经常阅读自己的帖子......
Mirhagk.




邮政发布: 2011年2月23日星期三12:09 PM  帖子主题:Re:sytem("pause")什么是大交易?

对不起,但是说设置断点比使用系统更好(“暂停”)。如何?这不是基于对系统的一个不同仇恨的任何东西(“暂停),没有原因。
魔鬼




邮政发布: 2011年2月23日星期三12:21 PM  帖子主题:Re:sytem("pause")什么是大交易?

断点允许您检查程序状态,包括变量值,指针等。您可以逐步通过您的代码来查看后续的内容。

使用断点避免使用对系统的调用和#includes /库的呼叫污染源代码。

使用断点让个人开发人员随时随地暂停,而不是源代理应该暂停的地方。

使用断点与其他调试器更好地工作,如GDB,因为它不需要用户输入继续。
Mirhagk.




邮政发布: 2011年2月23日星期三下午12:30  帖子主题:Re:sytem("pause")什么是大交易?

但是......更好地调用调试器的呼叫暂停exectuction以查看输出,比对系统的调用更好。

关键是,我们不需要查看变量或其他调试信息,我们需要查看输出。如果您认真地说断点比System Pause更好,只需看到最终输出,您就会出现问题。





邮政发布: 2011年2月23日星期三12:57 PM  帖子主题:Re:sytem("pause")什么是大交易?

Mirhagk,你要么不明白打破点是什么,或者你是一个巨魔。

在VS中添加断点不会对源代码的任何指示添加任何内容,并且只有在调试模式下运行时才relvent。虽然调试模式会让您调试信息,恐怖谁将拥有谁!

您的生产代码将与此类调试信息一起,并且断点是无关紧要的。

还要跳过每隔一点的方式我和每个其他帖子。如果你不能打败他们,请忽略它们?

例如,您跳过与在不调试的项目运行时自动为您添加Pasue而在同一段落中制作的积分。因此,你的愤怒是为了用凹陷来运行项目但没有看到任何调试信息???

我完成了这个话题,不使用系统(“Pasue”)的污染已经为您而言,通过serveral不同的海报甚至很清楚地为您铺设出来,并且您没有提供使用命令overcar()的原因。
计算机科学加拿大 帮助在C,C ++,Java,PHP,Ruby,图灵,VB等内容中进行编程!
魔鬼




邮政发布: 2011年2月23日星期三下午1:01  帖子主题:Re:sytem("pause")什么是大交易?

如果要暂停执行以查看输出,则会执行错误。您的输出不应消失:将其带到文件,或向持久控制台管道。别的是 错误的.

这不是任何真实IDE中困难的东西,无论是:大多数都会自动将程序输出自动重定向到STDOUT / STDERR(以及从STDIN)到(或从STDIN)到某处的控制台窗口。当您的程序完成运行时,控制台窗口通常不会消失 - 如果它确实,它可能会配置为不执行此操作。如果它不能,那么这是IDE的错。
BBI5291




邮政发布: 2011年2月23日星期三下午1:02  帖子主题:Re:sytem("pause")什么是大交易?

问题在于,您自己可能想要使用系统(“暂停”)仅在您的眼睛的代码时 - 真的,这取决于你。问题在于,尽管所有的故障以及GetChar(或Cin.get())严格更好,但事实上往往鼓励新的程序员使用它。您可以了解它是适当的情况或不适合使用系统的情况(“暂停”),但其他人甚至可能甚至没有意识到它具有平台依赖性,它具有安全问题,等等。
从上一个显示帖子:   
   指数 -> 编程,C ++ -> C ++帮助
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

13  [ 32 Posts ]
转到页面 1, 2, 3  下一页
跳到:   


Style:  
搜索: