伊莉討論區

標題: 關於C的寫入TXT擋 [打印本頁]

作者: [111}    時間: 2009-4-7 01:48 AM     標題: 關於C的寫入TXT擋

第一次來這裡發問~
請教各位大大
為何小弟欲將陣列用C存成TXT擋
但出來的總是亂碼呢?
附上原始碼:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <io.h>
#include <sys/stat.h>
#define SIZE 10
int main(void)
{
    int arr[SIZE]={10,14,17,21,24,28,35,47,52,63};
    int f1;
    f1=creat("C:\\rand.txt",S_IREAD|S_IWRITE);
   
    if(f1!=-1)
    {
              write(f1,arr,64);
              close(f1);
              printf("檔案製造完成!\n");
    }
    else
    {
        printf("檔案製造失敗!\n");
    }
   
    system("pause");
    return 0;
}
作者: include    時間: 2009-4-7 02:02 AM

因為write這個函數他寫出去的東西是bytes而不是字元
也就是說你其實寫了
00001010 00001110 00010001 00010101 00011000 00011100 00100011 00101111
00110100 00111111
這些東西進檔案
但是用文書編輯軟體開的時候他會把它當成字元來讀
所以你看到的東西是亂碼
作者: [111}    時間: 2009-4-7 12:42 PM

謝謝大大的回答~
那麼現在我應該要使用什麼辦法
才能讓他正確得寫入rand.txt中呢?
作者: include    時間: 2009-4-7 01:39 PM

你可以用fprintf這個函數
搭配迴圈把數字一個一個輸出到檔案裡
作者: matchknight    時間: 2009-4-7 07:56 PM

我也正在想是不是用錯東西了
fprintf 跟 fscanf
我都是用這兩個來玩file i/o 的...
作者: [111}    時間: 2009-4-7 10:32 PM

恩恩~
成功了!!!
謝謝大大指導~!
作者: koless    時間: 2009-4-9 12:38 AM

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!