gcc C 中 Linux 的系统(“暂停”)

gcc C 中 Linux 的系统(“暂停”)

Linux 中 C 语言中 system("pause") 的等效项是什么。不是 C++。

我想将它用于我的 c 程序。有一个注销功能。但在它返回主登录功能之前,我想向用户发送一条消息,告知他已成功注销。

我的功能是

void logout() {
    printf("You are successfully logged out\n");
    system("pause");
    login();
}

答案1

您可以使用getchar来实现:

#include <stdio.h>

void logout() {
    printf("You are successfully logged out\n");
    int c = getchar();
    login();
}

答案2

如果您不希望用户被要求按 ENTER 键,唯一的选择就是使用以下头文件:

#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>

那么代码将是:

struct termios oldt, newt;
char c;

// Save the current terminal attributes
tcgetattr(STDIN_FILENO, &oldt);

// Put the terminal into raw mode
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);

// Read a single character from the terminal
c = getchar();
printf("You typed: %c\n", c);

// Restore the original terminal attributes
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);

相关内容