2016-04-25 34 views
0

我試着去學C,我使用tutorialspoint,他們給了我不會在我的電腦上做任何事情的函數,該函數是:着寫文本文件

#include <stdio.h> 

int main(){ 
    FILE *fp; 

    fp = fopen("/tmp/test.txt", "w+"); 
    fprintf(fp, "This is testing for fprintf...\n"); 
    fputs("This is testing for fputs...\n", fp); 
    fclose(fp); 
} 

我錯過什麼?

+1

你有寫入權限「/ tmp」嗎? – jdarthenay

+0

嘗試寫入其他文件夾。 (這可能是後臺程序刪除使用的文件的工作。) – BLUEPIXY

+1

檢查'fopen()'的結果。如果它不能創建文件,它會返回NULL。 – jdarthenay

回答

1

這是好事,引入一些錯誤與文件檢查流

fp = fopen("test.txt", "w+"); 
/* 
* Try creating the file in the same folder for a start 
*/ 

if(fp!=NULL) 
{ 
fprintf(fp, "This is testing for fprintf...\n"); 
fputs("This is testing for fputs...\n", fp); 
} 
else 
{ 

    /* There are multiple reasons you can't open a file like : 
     * You don't have permission to open it 
     * A parent directory doesn't exist and so on. 
     */ 

printf("Can't open the file for write\n"); 
} 
fclose(fp); 
+0

仍然沒有改變任何東西 – Ash

+1

@Ash:你可以把這個文件放到程序目錄中來開始。將'/ tmp/test.txt'改爲'test.txt' – sjsam

+0

不再工作 – Ash

0

它創造了/ tmp目錄一個新的文件test.txt和寫入使用兩種不同功能的兩行。嘗試在/ tmp文件夾中找到test.txt。

+0

我無法找到它,我試圖創建文件夾並刪除它,有和沒有文件,但它什麼都不做 – Ash

+0

該文件夾是'/ tmp'順便說一下 – sjsam

+0

感謝您指出@sjsam – AJ93

0

fopen()不會爲您創建目錄。 運行此程序之前,您需要在當前磁盤的根目錄下創建一個tmp文件夾。

0
  • 首先,你需要創建一個從那裏你執行這個代碼,因爲的fopen沒有創建目錄的話,比temp目錄之後,你需要檢查下面的代碼:
#include <stdio.h> 
int main() 
{ 
    FILE *fp; 
    fp = fopen("/tmp/test.txt", "w+"); 
    if(fp == NULL) 
    { 
     printf("Usage Message: File is not open temp/test.txt"); 
    } 
    else 
    { 
     fprintf(fp, "This is testing for fprintf...\n"); 
    fputs("This is testing for fputs...\n", fp); 
     fclose(fp); 
    } 
} 
  • 還要記住,當你處理文件操作時,你必須檢查你的文件是否打開/創建或不是我們ing用法消息。其實這是編程的好兆頭。