Thứ Tư, 7 tháng 1, 2015

Cách đọc và ghi file text trong C++

Cách đọc và ghi file text trong C++

Trong C++ việc đọc và ghi file thường được sử dụng để đưa các bài toán ở dạng đầu vào và xuất ra kết qủa, giúp cho người ta dễ dàng kiểm tra xem chương trình của bạn có thực sự đúng không khi cho chương trình chạy với nhiều đầu vào và kiểm tra các kết quả ở đầu ra chương trình có đúng với kết quả chuẩn. Bài viết này sẽ trình bày các vấn đề về đọc và ghi file với các ký tự ASCII sử dụng thư viện ifstream.
cách đọc và ghi tệp trong c++

1. Dùng hàm ofstream trong thư viện fstream để ghi file

– Cách ghi ra file sử dụng thư viện fstream cũng tương đối đơn giản, gần giống với cout trong c++.
– Dưới đây là đoạn code ví dụ: tạo ra một file demo.txt rồi ghi vào đó một đoạn văn bản mà mình muốn.
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    ofstream FileDemo ("demo.txt");
    FileDemo << "Day la file demo su dung cach doc va ghi file su dung fstream. zFull.net";
    FileDemo.close();
    return 0;
}
Khi chạy đoạn code trên, chương trình sẽ tạo ra một file tên demo.txt nằm trong cùng thư mục với project chứa code của bạn. Khi mở file này lên sẽ thấy đoạn text mà mình đã ghi.
– Và sau đây đây là ví dụ về ghi ra các số chẵn từ 1 đến 1000 vào file sochan.txt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    ofstream SoChan ("sochan.txt");
    SoChan << "Day so chan tu 1 -> 1000 \n";
    for(int a = 1; a <= 1000; a++)
    {
        if(a%2==0)
        {
            SoChan << a;
            SoChan << "\n";
        }
    }
    SoChan.close();
    return 0;
}
File sochan.txt sau khi chạy chương trình trên sẽ như hình dưới. :D
đọc và ghi file c++
– Và tiếp tục một ví dụ ghi ra file “sochanle.txt” các số chẵn và lẽ từ 0 -> 100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <fstream>
 
using namespace std;
 
void ghiSoChan(ofstream &GhiSo)
{
    int dem = 0;
    GhiSo << "Day so chan tu 1 -> 100 \n";
    for(int a=1;a<=100;a++)
    {
        if(a%2==0)
        {
            dem++;
            GhiSo << a;
            if(dem%5==0)
            {
                   GhiSo << "\n";
            }
            if(dem%5!=0)
            {
                   GhiSo << "\t";
            }
        }
    }
    cout << "\n So Chan: " << dem;
}
 
void ghiSoLe(ofstream &GhiSo)
{
    int dem = 0;
    GhiSo << "\nDay so le tu 1 -> 100 \n";
    for(int i = 1; i <= 100; i++)
    {
        if(i%2 != 0)
        {
            dem ++;
            GhiSo << i;
            if(dem%5==0)
            {
                   GhiSo << "\n";
            }
            if(dem%5!=0)
            {
                   GhiSo << "\t";
            }
        }
    }
    cout << "\n So Le: " << dem;
}
 
int main()
{
 
    ofstream GhiSo("sochanle.txt");
    ghiSoChan(GhiSo);
    ghiSoLe(GhiSo);
    GhiSo<<"\n zFull.net";
    GhiSo.close();
    system("pause");
    return 0;
}
Kết quả file “sochanle.txt” thu được là:
ghi file c++
– Như vậy cách ghi ra một file sử dụng thư viện fstream trong C++ là khá dễ dàng đúng không :D

2. Dùng ifstream trong C++ để dữ liệu đọc file

– Ở trên ta ghi ra một file sochan.txt rồi, giờ ta thử đọc file đó xem sao:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    int a[501];
    ifstream SoChan ("sochan.txt");
    if(! SoChan.is_open())
    {
        cout << "Khong the mo file.\n";
        return 0;
    }
    else {
        for(int i = 1; i <= 500; i++)
        {
            SoChan >> a[i];
        }
    }
    for(int i =1; i <= 500; i++)
    {
        cout << a[i] << " ";
    }
    SoChan.close();
    system("pause");
    return 0;
}
Và kết quả sẽ được như sau:
cách đọc và ghi file c++
– Và tiếp một ví dụ khác để các bạn hiểu hơn về cách đọc file. Ví dụ này trình bày cách đọc một ma trận như hình bên dưới từ file txt.
đọc và ghi file c++
Và code chương trình như sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    int a[10][10];
    int n;
    ifstream MaTran ("graph.txt");
    if(! MaTran.is_open())
    {
        cout << "Khong the mo file.\n";
        return 0;
    }
    else {
        MaTran >> n;
        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j < n; j++)
            {
                MaTran >> a[i][j];
            }
        }
    }
 
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << a[i][j];
            cout << " ";
        }
        cout << "\n";
    }
    MaTran.close();
    system("pause");
    return 0;
}
Các bạn có thể tìm hiểu thêm về thư viện fstream tại đây.

3. Một vài lưu ý

– Code đều được test trên chương trình Dev C++.
– Trong một số bài tập về tin học người ta thường yêu cầu ghi ra file “.output” và đọc file “.input”, nếu gặp trường hợp đó, bạn làm tương tự như đối với file .txt. Tức là thay đổi tên file ghi ra là “.output” và file đọc vào là “.input”.
– Mọi thắc mắc xin để lại bình luận bên dưới bài viết này. Mình sẽ trả lời trong thời gian sớm nhất.

Lập trình với Dev-C++ phiên bản mới nhất [Setup + Portable

Lập trình với Dev-C++ phiên bản mới nhất [Setup + Portable]

Dev-C++ là phần mềm cơ bản để học lập trình C, C++. Ngoài ra còn phần mềm khác có thể sử dụng là Turbo C (gọn nhẹ hơn Dev-C++), mặc dù tương đối “thân thuộc” với những người đã từng học Pascal (vì cùng họ “Turbo”), tuy nhiên, chương trình này trên giao diện Console không thân thiện cho lắm và đồng thời sẽ gặp trục trặc với những những hệ điều hành 64-bit. Do vậy mình không chọn Turbo C để giới thiệu cho mọi người.
Dev-C++ 5.7.1
Bạn có thể tải về phiên bản Setup để cài đặt phần mềm hoặc sử dụng phiên bản Portable để chạy trước tiếp chương trình mà không cần cài đặt.
Phan mem dev-c moi nhat
Dự án phát triển Dev-C++ được lưu trữ trên SourceForge. Dev-C++ nguyên được phát triển bởi một lập trình viên có tên là Colin Laplace và chỉ chạy trên hệ điều hành Microsoft Windows.
Tải về Dev-C++ 5.7.1 64-bit

Tải về Dev-C++ 5.7.1 32-bit

Để kiểm tra phiên bản mới nhất của Dev-C++, các bạn vào 1 trong 2 link dưới!

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân

19:00:00 25/12/2014

Chia sẻ facebook

iPhone 8 trong concept này có màn hình 4,5 inch, bàn phím laser tích hợp, camera sau thông số ấn tượng và vận hành nhờ năng lượng mặt trời.

Mặc dù iPhone 6 và iPhone 6 Plus chỉ vừa mới ra mắt được hơn 3 tháng, nhiều thông tin về loạt thiết bị kế nhiệm bộ đôi này đã được đăng tải. Mới đây nhất, một báo cáo cho rằng năm sau Apple sẽ cho ra mắt tới 3 dòng smartphone mới cùng kích thước màn hình lần lượt là 4 inch, 4,7 inch và 5,5 inch. Bên cạnh các tin đồn, nhiều concept mô phỏng lại thiết kế iPhone mới cũng được các nhà thiết kế hào hứng giới thiệu. Một trong số đó là thiết kế iPhone 8 với nhiều phá cách của nhà thiết kế M. Merkler.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 1
Phần mặt lưng iPhone 8 trong hình dung của M. Merkler.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 2
Tác giả chia sẻ thiết bị này sở hữu màn hình 4,5 inch. Theo quan sát, có vẻ nút Home trên thiết bị này hơi lớn hơn so với bình thường.

Cụ thể, bản thiết kế của Merkler có chất liệu thân máy là sự kết hợp của nhôm, kính, vàng 14 karat và sợi fiber carbon. iPhone 8 cho phép người dùng chuyển đổi giữa sử dụng bộ chip xử lý bốn nhân (tối ưu thời lượng pin) và chip xử lý tám nhân (tối ưu hiệu năng). Lúc này, bên cạnh camera trước 5MP, iPhone 6 được tác giả tưởng tượng có camera sau lên tới 25MP.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 3
Mặt lưng có sự khác biệt nằm ở logo Apple và khu vực đặt SIM.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 4
Cạnh trái có thêm một dải đèn LED báo cuộc gọi đến.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 5
Dải đèn này cũng xuất hiện bên cạnh phải. Ngoài ra cạnh này còn có nút kích hoạt bàn phím laser và nút chuyển đổi vi xử lý.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 6
Chi tiết thiết kế cạnh trên và cạnh dưới.

Cận cảnh iPhone 8 thiết kế "hầm hố", công nghệ tối tân 7
Thiết bị này dày 8,2 mm.

Bạn nghĩ gì về thiết kế iPhone 8 nêu trên? Hãy để lại ý kiến của mình ở phần bình luận bên dưới nhé!

Nokia C1 - iPhone 6 phiên bản Nokia

Nokia C1 - iPhone 6 phiên bản Nokia

19:40:38 01/01/2015
Chia sẻ facebook

Nokia C1 trong bản thiết kế này được lấy cảm hứng từ chiếc máy tính bảng Nokia N1 mà Nokia ra mắt mới đây.

Một người dùng Deviantart có tên mrtomone mới đây đã đăng tải bản thiết kế mô phỏng một thiết bị có tênNokia C1 nhận được nhiều sự chú ý nhờ độ chi tiết, chân thực và đẹp mắt đến bất ngờ. Không khó để nhận ra Nokia C1 lấy cảm hứng từ thiết kế thật của Nokia N1, chiếc máy tính bảng của Nokia hợp tác cùng Foxconn sẽ lên kệ tại một số thị trường kể từ tháng này.

Nokia C1 - iPhone 6 phiên bản Nokia 1
Phần màn hình chiếc smartphone Nokia C1 được mrtomone thiết kế cho thấy máy chạy Androidvới giao diện người dùng của Z Launcher.

Theo tác giả, thiết bị mà anh thiết kế sẽ sử dụng chip bốn nhân tốc độ 2,8 GHz đến từ Intel đồng thời được hỗ trợ bởi nhân đồ họa Intel Mobile HD và RAM 3GB. Bên cạnh đó, đây sẽ là một thiết bị có màn hình IPS 5 inch độ phân giải Full HD với dung lượng bộ nhớ trong 16GB, 32GB hoặc 64GB.

Nokia C1 - iPhone 6 phiên bản Nokia 2
Mặt sau của thiết bị cho thấy những điểm tương đồng làm người ta nhớ đến iPhone 6 và iPhone 6 Plus. Thiết bị này có camera sau 20MP công nghệ Carl Zeiss, bên cạnh camera trước 5MP.

Nokia C1 - iPhone 6 phiên bản Nokia 3
Nokia C1 không có bất kì phím bấm vật lý nào ở mặt trước. 

Nokia C1 - iPhone 6 phiên bản Nokia 4
Thú vị hơn, tác giả còn hình dung một phiên bản khác của Nokia C1 chạy hệ điều hành Windows Phone.

Có lẽ một thiết bị như Nokia C1 sẽ không bao giờ có cơ hội được xuất hiện trên thị trường bởi sau khi thương vụ Microsoft - Nokia hoàn tất, công ty công nghệ Phần Lan đã chia sẻ họ không còn giữ tham vọng quay trở lại sân chơi smartphone. Theo bạn nếu trước khi bán mảng thiết bị và dịch vụ cho Microsoft, một thiết bị như Nokia C1 liệu có đủ sức giúp Nokia thoát khỏi được sự "tuột dốc không phanh" khỏi những danh tiếng lẫy lừng mà mình từng có trong quá khứ?

Ngắm nhìn thiết kế Samsung Galaxy S6 mới mẻ và khác biệt

Ngắm nhìn thiết kế Samsung Galaxy S6 mới mẻ và khác biệt

19:45:48 06/01/2015
Chia sẻ facebook

Ý tưởng Samsung Galaxy S6 này khá nam tính và sang trọng với thân máy cấu thành từ kim loại trong khi cạnh máy không còn được thiết kế bo tròn nhiều như trước.

Bản thiết kế Samsung Galaxy S6 được giới thiệu mới đây bởi nhà thiết kế Bob Freking sẽ mang đến cho bạn một hình dung mới mẻ hơn về thiết bị smartphone quan trọng này của Samsung. Theo đó, Bob Freking không dựa vào ngôn ngữ thiết kế thực tế của dòng Galaxy S để phát triển cho concept của mình mà đi theo một hướng thiết kế riêng.

Ngắm nhìn thiết kế Samsung Galaxy S6 mới mẻ và khác biệt 1
"Toàn cảnh" bản thiết kế Samsung Galaxy S6 mang lại nhiều cảm giác mới lạ cho người xem.

Theo Bob Freking, Samsung Galaxy S6 trong hình dung của anh có màn hình 5,2 inch cùng thân máy lớn hơn Samsung Galaxy S5 một chút nhưng vẫn nhỏ hơn Samsung Galaxy Note 4. Tác giả bản thiết kế còn cho rằng Galaxy S6 sẽ được trang bị bộ nhớ trong lên đến 256 GB cùng một số công nghệ mới mà Samsung áp dụng gần đây như cảm biến đo nhịp tim, cảm biến đo nhịp tim hay công nghệ sạc pin nhanh.

Ngắm nhìn thiết kế Samsung Galaxy S6 mới mẻ và khác biệt 2
Thân máy Samsung Galaxy S6 cấu thành từ kim loại. Mặt lưng của thiết bị này có cụm camera 20,5 MP.

Ngắm nhìn thiết kế Samsung Galaxy S6 mới mẻ và khác biệt 3
Giao diện màn hình khóa được thiết kế theo hình ảnh rò rỉ được cho là phiên bản mới của TouchWiz UI mà đến nay Samsung vẫn chưa giới thiệu. Cũng có thể thấy Galaxy S6 vẫn có nút Home vật lý quen thuộc, đồng thời máy sở hữu loa kép ở mặt trước.

Năm nay, có báo cáo khẳng định Samsung sẽ "làm lại từ đầu" với thiết kế của Samsung Galaxy S6 cùng dự án mang tên "Project Zero". Hiện vẫn chưa rõ những gì Samsung thực sự ấp ủ đằng sau dự án này, tuy nhiên xu hướng tin rò rỉ gần đây đều khẳng định S6 sẽ sở hữu thiết kế nhôm nguyên khối. Đây được coi là một thay đổi tích cực và ấn tượng cho dòng thiết bị cao cấp Galaxy S của ông lớn công nghệ Hàn Quốc.