C语言中system("cls");无法工作

3

system("cls") 在C语言中无效。我已经添加了conio.h头文件,但它总是显示cls未找到。我正在使用xcode。但是在Visual Studio上同样的代码可以完美执行。

enter image description here


你正在尝试运行一个名为“cls”的命令。你在哪个系统上运行它? - pm100
2
在类 Unix 的系统上,您可能会使用 clear 而不是 cls - anatolyg
1
C语言没有标准的清屏方式。在Mac上,您需要使用system("clear")。更好的方法是使用curses。 - pm100
顺便提一下,你的代码、输出窗口和问题文本都不同。你可能想要[编辑]你的问题,并提供你实际的代码和实际的输出,而不是作为图片,而是作为文本(使用复制-粘贴)- 为了方便大家并减少混淆,请这样做! - anatolyg
对于(ttt = 1; ttt <= 3; ttt ++) { system("clear"); for(int delay = 0; delay <= 100000000; delay ++) { } 我已经包含了<curses.h>,它仍然给出相同的错误。 - Abdul Samad Butt
Try system("CLS") - Xantium
3个回答

1
那是因为system("cls");与C语言无关。据我所知,conio.h头文件是一个旧的MS-DOS头文件,无法在多个平台上使用。 system()函数可从C程序内部执行外部程序,cls是用于清除MS-DOS控制台文本缓冲区的MS-DOS程序。在您的图片中,很明显您没有在MS-DOS控制台中执行程序,因此它不起作用。几乎总是不明智的使用外部程序,除非这些程序已保证安装到您的程序中。原因是任何依赖于目标环境中其他程序可用的程序,在外部程序不可用时将失败。我理解看到许多使用非标准技巧(如system("cls"))的代码很容易,但如果您找到好的学习资源,情况就不会如此。尝试学习每个函数,并确定它是否是标准函数以及使用它的方式是否是良好的实践。
TeX发行版就是这样工作的,它们只是几个程序相互交换文本,非常严格地遵循UNIX哲学。但它们都一起分发。

1
虽然conio不具备可移植性,但其控制台函数仍由MSVC实现。请勿将其与同名的Borland库混淆,后者提供的功能比现在的MSVC要多得多。 - Weather Vane
@WeatherVane 感谢您的澄清,我会将其作为注释留下,因为我之前不知道这一点。 - Iharob Al Asimi
奇怪的是,MSVC conio 库没有清除屏幕的功能。即使 Windows 控制台函数 也没有这个功能,尽管它可以被编制出来。 - Weather Vane

0
你正在尝试在控制台上使用system()运行cls命令(清除屏幕)。cls命令仅存在于Windows的DOS或命令提示符上。
如果您的程序在Linux或MacOSX上的Bash中运行,可以尝试使用clear命令。
系统将显示:
system("cls");
系统将显示:
system("clear");

0

它不起作用是因为system()是stdlib库函数。
在C语言中,您需要使用#include<stdlib.h>才能使用system("cls")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接