2015-10-14 41 views
1

我正在嘗試在C中創建數據庫,並使用.txt文檔作爲存儲所有數據的位置。但是我無法讓fputs()移位,所以我的程序在這個.txt文件中寫入的所有內容都只在一行上。寫入文件時,fputs()不會更改行

int main(void){ 

    char c[1000]; 
    FILE *fptr; 
    if ((fptr=fopen("data.txt","r"))==NULL){ 
     printf("Did not find file, creating new\n"); 
     fptr = fopen("data.txt", "wb"); 
     fputs("//This text file contain information regarding the program 'monies.c'.\n",fptr); 
     fputs("//This text file contain information regarding the program 'monies.c'.\n",fptr); 
     fputs("//Feel free to edit the file as you please.",fptr); 
     fputs("'\n'",fptr); 
     fputs("(Y) // Y/N - Yes or No, if you want to use this as a database",fptr); 
     fputs("sum = 2000 //how much money there is, feel free to edit this number as you please.",fptr); 
     fclose(fptr); 


    } 
    fscanf(fptr,"%[^\n]",c); 
    printf("Data from file:\n%s",c); 

    fclose(fptr); 
    return 0; 
} 

這是我的測試文檔。 我覺得我已經嘗試了一切,然後一些,但不能讓它改變線,非常感謝幫助。 Btw。輸出看起來是這樣的: Output from the program.

+0

什麼是您的操作系統? –

+2

嘗試將''wb「'改爲'」w「'。 – BLUEPIXY

回答

4

有你的程序中的兩個問題:

  • 應指定「W」,而不是「WB」,以使文件的讀寫文本而非二進制。儘管在某些系統中這沒有區別,而b被忽略。
  • 文件讀取的部分應該在其他部分,否則它會在文件創建後執行,其中fptr不包含有效值。

這是帶有這些更正的代碼。我確實得到了一個多行data.txt。

int main(void){ 

    char c[1000]; 
    FILE *fptr; 
    if ((fptr=fopen("data.txt","r"))==NULL){ 
    printf("Did not find file, creating new\n"); 
    fptr = fopen("data.txt", "w"); 
    fputs("//This text file contain information regarding the program 'mon 
    fputs("//This text file contain information regarding the program 'mon 
    fputs("//Feel free to edit the file as you please.",fptr); 
    fputs("'\n'",fptr); 
    fputs("(Y) // Y/N - Yes or No, if you want to use this as a database", 
    fputs("sum = 2000 //how much money there is, feel free to edit this nu 
    fclose(fptr); 
    } 
    else 
    { 
    fscanf(fptr,"%[^\n]",c); 
    printf("Data from file:\n%s",c); 
    fclose(fptr); 
    } 
    return 0; 
} 
+1

「wt」是「fopen()」調用的非標準模式。見7.19.5.3:http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf –

+0

嗯,你是對的。 –

相關問題