Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Hỏi về vấn đề Đọc File

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    25

    Mặc định Hỏi về vấn đề Đọc File

    Giả sử như mình có một file là input.txt, trên file có 2 dòng, dòng đầu là các số ngăn cách nhau bởi khoảng trắng, mình muốn tính tổng của mảng này và xuất ra file output.txt, còn dòng thứ 2 là một chuỗi, mình muốn dùng hàm đọc chuỗi này và xuất ra một câu chào mừng vả cũng xuất ra luôn trên output.txt, vd như:


    input.txt:

    1 4 2 5
    Chao mung ban

    Output.txt:

    12
    Chao mung ban

    Cho mình hỏi trong hàm ReadFile() mình sẽ làm như thế nào để làm được chuyện này. Thanks ALL!

  2. #2
    No Avatar
    ngocbig Khách

    Nếu đọc chuỗi thì dùng CStdioFile::ReadString, đọc bằng CFile mất thêm công đoạn xử lý text

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    25

    Mình mở file và ghi File bằng hàm fopen() và hàm fscanf(). :(

  4. #4
    No Avatar
    ngocbig Khách

    Ủa! Cái này phải post bên box hỏi đáp C chứ. Nhưng nó cũng đơn giản, tớ post sample code cho bạn tham khảo:

    C Code:
    1. #include<stdio.h>
    2. #include<string.h>
    3.  
    4. int main()
    5. {
    6.     int sum =0;
    7.     int number;
    8.     //===============in==============
    9.     FILE* file = fopen("C:\\in.txt","rt");
    10.     char line1[10],line2[20];
    11.     fgets(line1,10,file);
    12.     fgets(line2,20,file);
    13.  
    14.     for (int i=0;i<strlen(line1);i++)
    15.     {
    16.         if(line1[i]>='0'&&line1[i]<='9')
    17.         {
    18.             number = line1[i]-48;
    19.             sum+=number;
    20.         }
    21.     }
    22.     sprintf(line1,"%d\n",sum);
    23.     fclose(file);
    24.  
    25.     //==============out=============
    26.     file = fopen("C:\\out.txt","wt");
    27.     fputs(line1,file);
    28.     fputs(line2,file);
    29.     fclose(file);
    30. }

  5. #5
    Ngày gia nhập
    12 2007
    Bài viết
    25

    Chương trình chạy rất đúng đắn. Cảm ơn bạn rất nhiều.

    Nhưng có 1 chỗ mình chưa rõ là trong vòng lặp for bạn code: number = line1[i]-48; Số 48 này có nghĩa là gì mong bạn giải thích thêm.
    Đã được chỉnh sửa lần cuối bởi thangtcnb : 10-01-2009 lúc 08:59 AM.

  6. #6
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Mặc định Hỏi về vấn đề Đọc File

    biến từ mã acsii -> số, vd
    C Code:
    1. char x='9';
    2. int a=x-48; //gán a=9;
    code ra gió bão

  7. #7
    No Avatar
    ngocbig Khách

    Nhưng có 1 chỗ mình chưa rõ là trong vòng lặp for bạn code: number = line1[i]-48; Số 48 này có nghĩa là gì mong bạn giải thích thêm.
    Mình giải thích thế này cho rõ nhé. '0' có mã ASCII là 48, '1' là 49, ...'9' là 57

    line1[i] - 48 có nghĩa là lấy mã ASCII của kí tự thứ i trong chuỗi line1 trừ 48.

    Vậy, nếu line1[i] = '0' (mã 48) trừ 48 đc giá trị là 0. Tương tự line1[i] = '9' (mã 57) trừ 48 đc giá trị là 9. Cộng các giá trị này vào sum đc 12.

Các đề tài tương tự

  1. Cách add file thư viện dll vào file exe để tạo một file chạy duy nhất C#
    Gửi bởi nthung2112 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 01-09-2012, 10:01 AM
  2. File backup .bak có dung lương lớn hơn file .mdb và file log
    Gửi bởi MYNAM trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 27-07-2012, 12:59 PM
  3. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  4. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  5. Trả lời: 17
    Bài viết cuối: 23-05-2011, 11:47 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn