当前位置:首页 » 编程语言 » 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不容易出错