① 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不容易出錯