30/09/2018, 16:24

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 ạ

Nguyễn Minh Dũng viết 18:37 ngày 30/09/2018

windows.h, conio.h

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ì?

Cái nữa là làm sao để sử dụng lệnh từ terminal ạ ( giống system() trên win)

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

Nguyễn Duy Khánh viết 18:39 ngày 30/09/2018

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 ?

Nguyễn Minh Dũng viết 18:30 ngày 30/09/2018

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

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

Nguyễn Duy Khánh viết 18:33 ngày 30/09/2018

không được A ạ


nó ra như vậy

Nguyễn Minh Dũng viết 18:34 ngày 30/09/2018

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;
}
Nguyễn Duy Khánh viết 18:25 ngày 30/09/2018

Đc r ạ, tks A nhiều ạ

Bùi Thế Khải viết 18:33 ngày 30/09/2018

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

Nguyễn Minh Dũng viết 18:35 ngày 30/09/2018

bằng lệnh sleep thôi.

#include <unistd.h>
unsigned int sleep(unsigned int seconds);
Bùi Thế Khải viết 18:30 ngày 30/09/2018

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

Bài liên quan
0