C语言中如何实现按任意键退出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何实现按任意键退出相关的知识,希望对你有一定的参考价值。

参考技术A C语言中可以使用函数system()、getch()实现按键退出。
1、直接调用系统函数
system(“pause”):
system()会调用fork()产生子进程,
由子进程来调用/bin/sh-c
string
来执行参数string
字符串所代表的命令,
此命令执行完后随即返回原调用的进程。
system(“pause”)可以实现冻结屏幕,便于观察程序的执行结果。
2、调用getch()函数:
此函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,需要include<conio.h>
扩展资料
一、使用getch函数设置退出
所在头文件:conio.h。
函数用途:从控制台读取一个字符,但不显示在屏幕上。
函数原型:intgetch(void);
返回值:读取的字符。
二、打开文件的操作通过标准库函数
fopen
函数
fopen
的第二个参数指定了文件的访问模式,访问模式决定了流所许可的输入和输出操作。对访问模式字符串的许可值有严格的限制。
该字符串的第一个字符只能为三种形式:r(read)、w(write)或者
a(append)。另可加字符b表示以二进制方式打开文件。
参考技术B #include<stdio.h>
#include<conio.h>
void
main(void)

while(!kbhit())

printf(”HAHA\n”);

getch();

kbhit()函数被包含在conio.h头文件里

错误记录Ubuntu 下 VSCode 编译报错 ( 无法生成和调试,因为活动文件不是 C 或 C++ 源文件。终端进程启动失败(退出代码: -1)。终端将被任务重用,按任意键关闭。 )

文章目录





一、报错信息



在 VSCode 中 , 创建 cpp 源码 :

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()

    vector<string> msg "Hello", "C++", "World", "from", "VS Code", "and the C++ extension!";

    //strin

    for (const string& word : msg)
    
        cout << word << " ";
    
    cout << endl;

生成了 tasks.json 构建脚本 ;


	"version": "2.0.0",
	"tasks": [
		
			"type": "cppbuild",
			"label": "C/C++: g++ 生成活动文件",
			"command": "/usr/bin/g++",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"$file",
				"-o",
				"$fileDirname/$fileBasenameNoExtension"
			],
			"options": 
				"cwd": "$fileDirname"
			,
			"problemMatcher": [
				"$gcc"
			],
			"group": 
				"kind": "build",
				"isDefault": true
			,
			"detail": "编译器: /usr/bin/g++"
		
	]

编译时报如下错误 :

> Executing task: C/C++: g++ 生成活动文件 <

无法生成和调试,因为活动文件不是 C  C++ 源文件。
终端进程启动失败(退出代码: -1)

终端将被任务重用,按任意键关闭。




二、解决方案



核心报错是 无法生成和调试,因为活动文件不是 C 或 C++ 源文件。

没有找到 C/C++ 文件 ;

在 tasks.json 构建脚本中 , 指定 C/C++ 文件路径的是 "tasks 下的 "args" 路径 ,


当前配置的 g++ 参数的 args 配置如下 :

			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"$file",
				"-o",
				"$fileDirname/$fileBasenameNoExtension"
			],

"$file" 配置就是 C++ 源文件的路径 , 该路径无效 , 这里修改为 "$workspaceFolder/*.cpp" 参数 ;

修改后的 tasks.json 构建脚本 如下 :


	"version": "2.0.0",
	"tasks": [
		
			"type": "cppbuild",
			"label": "C/C++: g++ 生成活动文件",
			"command": "/usr/bin/g++",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"$workspaceFolder/*.cpp",
				"-o",
				"$fileDirname/$fileBasenameNoExtension"
			],
			"options": 
				"cwd": "$fileDirname"
			,
			"problemMatcher": [
				"$gcc"
			],
			"group": 
				"kind": "build",
				"isDefault": true
			,
			"detail": "编译器: /usr/bin/g++"
		
	]

使用 Ctrl + Shift + B 快捷键 , 即可完成编译操作 ;

> Executing task: C/C++: g++ 生成活动文件 <

正在启动生成...
/usr/bin/g++ -fdiagnostics-color=always -g /home/octopus/vscode/helloworld/*.cpp -o /home/octopus/vscode/helloworld/.vscode/tasks

生成已成功完成。

终端将被任务重用,按任意键关闭。

生成的可执行文件在 .vscode 目录下 , 名称是 task ;

执行 cd .vscode 命令 , 进入 .vscode 目录中 ,

使用 ./task 命令 , 执行该 task 可执行文件 , 打印如下内容 ;

Hello C++ World from VS Code and the C++ extension! 

以上是关于C语言中如何实现按任意键退出的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何终止线程

C语言的运行文件完了,怎么会自动关闭窗口啊?

android程序如何实现按返回键退出所有activity

批处理文件*.BAT如何实现延时运行?

linux文本操作界面 vi面板如何复制一行

Python怎么设置按任意键退出