當前位置:首頁 » 編程語言 » c語言運行無法寫入
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言運行無法寫入

發布時間: 2022-08-18 22:28:48

A. 為什麼c語言程序輸入不了內容,有什麼錯誤

二維字元串數組a[n][m],其中a[n]的是行指針,表示的一行數據。

所以在你圖中代碼char c[5][20];c[i]就表示一行字元串的首地址。

同理s數組也是。

所以當輸入c和s數組,用c[i],s[i]做參數,不要加&,直接寫scanf("%s%s",c[i],s[i])就可以了。

而a是不是字元數組,%f不能直接對應一行,而要對應其中一個元素,所以要寫&a[i][j]。

而你的循環條件也不對,你那樣寫,字元數組,浮點數組循環輸入次數是不一樣的,要分開循環。

另外scanf輸入默認是空格分隔,所以字元串和字元串之間要有空格,每個數字之間也要空格。像這樣輸入:


#include <stdio.h>

int main()

{

int i,j;

char c[5][20];

char s[5][20];

float a[11][6];

printf("please input: ");

for(i=0;i<5;i++)

scanf("%s%s",c[i],s[i]);

for(i=0;i<11;i++)

for(j=0;j<6;j++)

scanf("%f",&a[i][j]);


printf(" 輸出列印: ");

printf("c數組內容: ");

for(i=0;i<5;i++)

printf("%s ",c[i]);

printf("s數組內容: ");

for(i=0;i<5;i++)

printf("%s ",s[i]);

printf("a數組內容: ");

for(i=0;i<11;i++,printf(" "))

for(j=0;j<6;j++)

printf("%f",a[i][j]);

return 0;

}

B. c語言寫文件,偶爾寫不進去

如果像你所說,運行有能寫入成功的時候。說明代碼沒出錯。
那麼就在寫入方式上,wb+是新建二進制,已存在刪除,允許讀寫。
那麼如果文件無法刪除,比如文本進程被引用之類,就影響執行。
簡單說,你要用wb+,運行程序的時候,盡量不要對原文件進行其他操作。
或者你直接代碼每次新建一個新的文件,不重名。

C. C語言,為什麼我無法將數據寫入文件

它可能是因為,沒有這個文件的寫入操作許可權,或者文件已被損壞等等原因。

D. C語言程序中數據無法輸入

通過在代碼中添加讀入數據的函數,來達到輸入數據的目的。
常用的讀入數據的函數有,scanf,
getchar,
gets等。
scanf是格式化輸入,可以用來輸入各種類型。
getchar功能為讀入一個單個字元。
gets功能為讀入一行輸入存為字元串,並把換行符替換為字元串結束符。
這幾個函數都在stdio.h中,所以使用的時候,需要在文件頭添加如下語句:
#include
以scanf為例,做以下程序:
#include
int main()
{
int v;
printf("please input a number:"); //輸出提示語句。
scanf("%d",&v);//用scanf讀入一個整型數據,並存到v中,其中%d為格式字元,對應整型。
printf("the number is %d\n", v); //輸出得到的數據。
return 0;
}

E. C語言,為什麼我無法將數據寫入文件

fclose(fp):函數fclose()關閉給出的文件流, 釋放已關聯到流的所有緩沖區. fclose()執行成功時返回0,否則返回EOF. 加上這一句是為了保護你的文件 如果不寫這句 那麼別的程序也可以隨意的對該文件進行寫入 這樣你的文件就是亂套了。 首先樓主要搞清楚getchar()是什麼意思 getchar() 相當於 getc(stdin)也就是從stdin緩沖流裡面讀數據 你寫這句也是為了防止你輸入字元後後面還有殘余 但是你第二個是讀文件數據流 根本就沒有讀緩沖流 所以不寫那句也可以的 不知道樓主明白否? 補充回答: 樓主沒有弄明白什麼是EOF EOF常被作為文件結束的標志。EOF 的值通常為 -1 它不是字元串 他相當於宏定義 它是不會被寫入到文件當中的 如樓主還有疑問 直接hi我吧

F. 為什麼C語言文件無法寫入

賦值運算符沒有邏輯運算符優先順序高,
你的判斷語句少寫了一對括弧,從而導致文件指針賦值不正確。
應該改為:
if ( ( fp=fopen("data", "ab") )==NULL )
{
... ...

G. C語言文件的讀取和寫入不成功是什麼原因

使用fopen的r方式可以實現讀取,用w+方式可以實現寫入。1.fopen的函數原型:FILE * fopen(const char * path,const char * mode); fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:r 以只讀方式打開文件,該文件必須存在。r+ 以可讀寫方式打開文件,該文件必須存在。rb+ 讀寫打開一個二進制文件,允許讀數據。rw+ 讀寫打開一個文本文件,允許讀和寫。w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)wb 只寫打開或新建一個二進制文件;只允許寫數據。wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。wt+ 讀寫打開或著建立一個文本文件;允許讀寫。at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據。ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。 返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。

H. C語言程序無法把數組寫入文件,運行完之後,文件里沒有數據

double類型需要寫fprintf(fp2,"%lf,",yy[i]);

fscanf也是建議寫:for(i=0;!feof(fp1);i++) fscanf(fp1,"%lf",&y[i]);

I. 我在C語言編程序時只要一運行就提示無法寫入是怎麼回事

正在運行的程序文件不能被修改。程序結束後再編譯就可以了。