當前位置:首頁 » 編程語言 » c語言文件讀寫的第一個元素錯誤
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言文件讀寫的第一個元素錯誤

發布時間: 2022-07-10 05:40:07

c語言,文件讀寫及文件錯誤檢查的問題,答對我會在提高懸賞值,問了好多天了,找不到完美的解釋。(ㄒoㄒ)

你得看一下ferror和clearerr兩個函數的功能。ferror是檢查文件操作是否出錯,如果出錯了,想清除錯誤標記就要用clearerr(rewind、fseek、fsetpos都能在完成相應功能的同時產生clearerr的作用)清除,文件才能繼續正常操作。這就是說clearerr要用在出錯之後,而你的代碼沒有出錯卻調用clearerr,這反而破壞了文件操作的正常環境,所以後面要出問題。你把clearerr移到if(ferror(p))的體里去,讓出錯時執行clearerr,不出錯時就不執行clearerr,這樣就可以避免問題。圖1、圖2的現象都依此可正確解釋。圖3不必說了,前面說過rewind可在把文件指針移到開頭處的同時解除錯誤環境……供參考,

② c語言關於文件讀寫的問題,第一張圖輸出的結果和事實不符出錯了,請

文件的讀寫是分時進行的,即讀時FILE結構體內部的指針一直處於讀狀態,要轉入寫狀態時要調整一下,反過來也一樣。rewind把指針移到文件開頭,下面讀也可以寫也可以;但寫了就只能跟著寫,讀了就只能跟著讀,不能一會兒讀一會兒寫。當然調整一下文件內部指針的讀寫性質不光能用rewind實現,不想把文件指針移到開頭時用fseek函數也能實現。

③ 用C語言寫程序,建立一個(程序內自己命名)文件,並讀寫字元串,但是按了1後老是出錯,求解

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LENTH 200
int main(void)
{
int ch;
printf("要建立文件請輸入1;要讀取文件請輸入2.\n");
scanf("%d",&ch);
getchar(); //這里加一句這個,出錯的原因是在輸入緩沖區殘留了一個回車符,導致下面gets(fileName);讀入了回車符直接結束,fileName字元串僅僅讀入了一個結束標志'\0'

④ 關於c語言的問題 這個程序錯誤,在哪我想輸入這個結構數組的第一個元素的值先試試name 但是說

正確寫法應該這樣

#include<stdio.h>
#include<string.h>

structperson{

charname[30];
charaddress[30];
charnumber[13];
intmoney;
};
structpersonlist[1000];

voiddata(structpersonperson_list)
{
printf("%s ",person_list.name);
}

voiddata1(structperson*person_list)
{
printf("%s ",person_list->name);
}

intmain()
{
strcpy(list[0].name,"sda");
data(list[0]);//使用傳值的方式,
data1(&list[0]);//建議傳遞傳指針,而不是直接傳遞值
return0;
}

⑤ C語言程序設計第一行錯誤怎麼回事

我認為是你的文件創建錯誤,要不然就是沒有選擇win32控制,要不然就是沒選擇c++source file

⑥ C語言中讀寫文件的一個問題

int n,a[n],ii;
float b[n];
n=16;

C中不允許這樣定義數組,修改如下:

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define N 16
void main()
{

int a[N],ii;
float b[N];
FILE *infp1;
FILE *outfp1;
printf("HI\n");

if((infp1 = fopen("E:\\node.txt","r")) == NULL)
{
fprintf(stderr,"Cannot open output file %s\n","node.txt");
exit(-1);
}
if((outfp1 = fopen("E:\\result1","w")) == NULL)
{
fprintf(stderr,"Cannot open output file %s\n","result1");
exit(-1);
}
for(ii=0;ii<N;ii++)
{
fscanf(infp1,"%d,%e",&a[ii],&b[ii]);
printf("a[%d]=%d b[%d]=%e\n",ii,a[ii],ii,b[ii]);
fprintf(outfp1,"a[%d]=%d b[%d]=%e\n",ii,a[ii],ii,b[ii]);
}

system("pause");
}

⑦ 用C語言讀寫文件時發生錯誤,訪問沖突

fscanf和在scanf沒多大分別樓主應該清楚
fscanf出錯肯定只能在文件上
因為是%d輸入 所以文件里頭有其他亂七八糟的東西肯定會有問題
建議用fread不容易出錯