Một số thư viện C++ trên linux?

E đang sài ubuntu, và code bằng Eclipse IDE nhìn chung là khá ok nhưng nó lại thiếu 1 số thư viện chỉ có trên windows vd như windows.h, conio.h … … .
Có cách nào để cài vào cho đủ ko ạ,e GG nhiều mà ko ra. Cái nữa là làm sao để sử dụng lệnh từ terminal ạ ( giống system() trên win)
Tks ạ

Em cần windows.hconio.h làm gì trên linux? Giống như em cần tiếng Việt ở nước Anh để làm gì?

Em vẫn chỉ cần dùng lệnh system là được, nhớ include stdlib.h

4 Likes

cái windows,h thì e chỉ hỏi thư viện tương đương là cái stdlib.h như A đã trả lời rồi

#include <iostream>
#include <stdio.h>
#define MAX 100
using namespace std;
void ArrayIn_Char(char a[][MAX], int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << "Nhap vao day thu " << i;
        fflush(stdin);
        gets(a[i]);
    }
}
void ArrayOut_Char(char a[][MAX], int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << a[i] << endl;
    }
}
int main()
{
    char b[20][MAX];
    int x;
    do
    {
        cout << "\nNhap vao so chuoi : ";
        cin >> x;
        if (x < 1 || x > 20)
        {
            cout << "\nGia tri nhap khong hop le . Xin kiem tra lai !";
        }
    }
    while (x < 1 || x > 100);
    ArrayIn_Char(b, x);
    ArrayOut_Char(b, x);
}

Anh cho e hỏi là sao khi chạy bằng Eclipse trên linux thì nó lại bỏ qua khi nhập đoạn nhập vào dãy 0, đến dãy 1 luôn trong khi e code bằng VS 2013 trên windows thì bt ?

Em chạy file binary bằng terminal xem. Ví dụ em compile ra được file baitap, thì em chạy file baitap đó như sau

path/baitap

trong đó path là đường dẫn tới file baitap

1 Like

không được A ạ


nó ra như vậy

1 Like

A mới kiểm tra lại, hàm fflush(stdin) không hoạt động tốt trên linux, nhiều người cũng bị giống em.

Anh thấy họ sử dụng hàm này để bỏ ký tự ENTER thừa.

void clean_stdin(void)
{
    int c;
    do {
        c = getchar();
    } while (c != '\n' && c != EOF);
}

Đây là code anh đã sửa

#include <iostream>
#include <stdio.h>

#define MAX_LEN 100
#define MAX_CHUOI 20

using namespace std;

void clean_stdin(void)
{
    int c;
    do {
        c = getchar();
    } while (c != '\n' && c != EOF);
}

void ArrayIn_Char(char strArr[][MAX_LEN], int numChuoi)
{
    clean_stdin();
    for (int i = 0; i < numChuoi; i++) {
        cout << "Nhap vao day thu " << i << ": ";
        gets(strArr[i]);
    }
}

void ArrayOut_Char(char strArr[][MAX_LEN], int numChuoi)
{
    for (int i = 0; i < numChuoi; i++) {
        cout << strArr[i] << endl;
    }
}

int main()
{
    char strArr[MAX_CHUOI][MAX_LEN];
    int numChuoi;
    do {
        cout << "\nNhap vao so chuoi ( 1 < so chuoi < 20 ): ";
        cin >> numChuoi;
        if (numChuoi < 1 || numChuoi > MAX_CHUOI) {
            cout << "\nGia tri nhap khong hop le . Xin kiem tra lai !";
        }
    } while (numChuoi < 1 || numChuoi > MAX_CHUOI);

    ArrayIn_Char(strArr, numChuoi);
    ArrayOut_Char(strArr, numChuoi);

    return 0;
}
4 Likes

Đc r ạ, tks A nhiều ạ

1 Like

anh oi, lenh sleep(s) thay bang j tren ubuntu ha anh ?

bằng lệnh sleep thôi.

#include <unistd.h>
unsigned int sleep(unsigned int seconds);

em chay bang terminal ma no dung ngay khong chay tiep anh oi ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?