簡體   English   中英

C中的fprintf()函數無法正常工作

[英]fprintf() function in C is not working properly

我編寫此代碼是為了從用戶輸入數字並將其輸出到文件中。但是它不起作用,運行代碼后, output.txt文件仍然為空。 請告訴我我做錯了什么。 我保證在運行程序之前已經創建了output.txt文件,因此文件指針不會為NULL

#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE *ptr;ptr=fopen("output.txt","rw");
if(ptr==NULL){printf("Error in oppening file aborting .......");exit(0);}
char ch[100];
scanf("%s",ch);
fprintf(ptr,"%s",ch);
fclose(ptr);
return 0;
}

fopen 文檔開始 ,支持的訪問模式為:

“ r”讀取:打開文件進行輸入操作。 該文件必須存在。

“ w”寫:為輸出操作創建一個空文件。 如果已經存在同名文件,則將其內容丟棄,並將該文件視為新的空文件。

“ a”追加:打開文件以在文件末尾輸出。 輸出操作始終將數據寫入文件的末尾,然后進行擴展。 重新定位操作(fseek,fsetpos,rewind)將被忽略。 如果文件不存在,則創建該文件。 “ r +”讀取/更新:打開文件進行更新(用於輸入和輸出)。 該文件必須存在。

“ w +”寫入/更新:創建一個空文件並打開以進行更新(用於輸入和輸出)。 如果同名文件已經存在,則將其內容丟棄,並將該文件視為新的空文件。

“ a +”附加/更新:打開文件進行更新(用於輸入和輸出),所有輸出操作均在文件末尾寫入數據。 重新定位操作(fseek,fsetpos,rewind)會影響下一個輸入操作,但是輸出操作會將位置移回文件末尾。 如果文件不存在,則創建該文件。

在您的代碼中,您使用了無效的“ rw”,這就是您的程序無法運行的原因。

將“ rw”更改為“ w”,您的程序將運行。 請注意,您不需要創建output.txt ,如果當前用戶在程序目錄中具有寫權限,則fopen會為您創建它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM