当前位置:首页 » 编程语言 » c语言读和写
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言读和写

发布时间: 2022-02-25 03:39:48

‘壹’ c语言文件读写

有两处错误,一处小的,一处大的。
小的:i都没有初始化。怎么使i跟n比较(i<n)。
大的:fputc的用法没有了解清楚。fputc中int型参数的意义是那个字符的ASCII码值。如上面的程序只要在ch=rand()%2;后面加一条语句ch=ch+'0';就可以了。试试看。

‘贰’ C语言对记事本的读取和写入

按你需求重改的:

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
#defineLEN101//一行最大字符数(LEN-1)/2
typedefstructrowStr//存储一行数据
{
charstr[LEN];
structrowStr*next;
}RSTR;

voidwriteFile(FILE*fp,RSTR*rstrHead);
RSTR*readFile(FILE*fp,intnRow);//参数:nRow:要读取几行
RSTR*strBA(RSTR*rstrHeadA,RSTR*rstrHeadB);//整合BA字符串,返回整合后链表首节点
voidmeError(void*p);//内存申请失败
intmain()
{
FILE*fp;
charfilePath[]="c:\list.txt";
RSTR*rstrHeadA=NULL,*rstrHeadB=NULL,*rstrHeadBA=NULL;
if((fp=fopen(filePath,"rt+"))==NULL)
{
printf("!");
exit(1);
}
fseek(fp,0,SEEK_SET);//文件流指针重置到开头
printf("----开始读取文件第一行到链表A---- ");
rstrHeadA=readFile(fp,1);
printf("----开始读取文件剩余行到链表B---- ");
rstrHeadB=readFile(fp,100);//这里第2个参数要大于等于文本剩余行数

printf("----把A的一行字符串整合到B的每行字符串末尾---- ");
rstrHeadBA=strBA(rstrHeadA,rstrHeadB);

printf("----删除原文件新建新的空白文件---- ");

if(remove(filePath)==0)
if((fp=fopen(filePath,"rt+"))==NULL)
{
printf("!");
exit(1);
}
fseek(fp,0,SEEK_SET);
printf("----先写入整合后的字符串到文件---- ");
writeFile(fp,rstrHeadBA);
fclose(fp);


return0;
}
RSTR*strBA(RSTR*rstrHeadA,RSTR*rstrHeadB)
{
RSTR*rstrHeadBA=(RSTR*)malloc(sizeof(RSTR)),*rstrTailBA=NULL,*rstrNew=NULL;
meError(rstrHeadBA);
rstrHeadBA->next=NULL;
while(rstrHeadB->next)
{
rstrNew=(RSTR*)malloc(sizeof(RSTR));
meError(rstrNew);
rstrNew->str[0]=0;
rstrNew->next=NULL;
strcat(rstrNew->str,rstrHeadB->next->str);
strcat(rstrNew->str,rstrHeadA->next->str);
if(rstrHeadBA->next==NULL)
rstrHeadBA->next=rstrNew;
else
rstrTailBA->next=rstrNew;
rstrTailBA=rstrNew;
rstrHeadB=rstrHeadB->next;
}
returnrstrHeadBA;
}
RSTR*readFile(FILE*fp,intnRow)
{
inti=0;
RSTR*rstrHead=(RSTR*)malloc(sizeof(RSTR)),*rstrTail=NULL,*rstrNew=NULL;
meError(rstrHead);
rstrHead->next=NULL;
rstrNew=(RSTR*)malloc(sizeof(RSTR));
meError(rstrNew);
rstrNew->next=NULL;
rstrNew->str[0]=0;
while(fscanf(fp,"%[^ ]%*c",rstrNew->str)!=-1)
{
if(rstrHead->next==NULL)
rstrHead->next=rstrNew;
else
rstrTail->next=rstrNew;
rstrTail=rstrNew;
rstrNew=(RSTR*)malloc(sizeof(RSTR));
meError(rstrNew);
rstrNew->next=NULL;
rstrNew->str[0]=0;
i++;
nRow--;
if(nRow==0)
break;
}
if(i==0)//无数据读取,删除预申请空间
rstrHead->next=NULL,rstrTail=NULL;
free(rstrNew);
returnrstrHead;
}
voidwriteFile(FILE*fp,RSTR*rstrHead)//一次写入一行商品信息
{
printf("----开始写入文件---- ");
while(rstrHead->next)
{

fprintf(fp,"%s ",rstrHead->next->str);
rstrHead=rstrHead->next;
}
}
voidmeError(void*p)//内存申请失败
{
if(p==NULL)
{
printf(" 异常:内存申请失败!回车结束程序! ");
while(getch()!=' ');
exit(0);
}
}

‘叁’ c语言的读写

"%d,%d"格式字符串里的逗号就是个格式,输入的时候相应的也应写作5,6的格式,逗号换成任何字符串都一样,如"%daaabbb%d",那么输入就应是5aaabbb6形式

‘肆’ C语言如何实现对txt文件的读取和写入

1、使用VS新建空工程,直接点击确定,如下所示。

‘伍’ c语言中 所谓的【读】【和】写谁能用通俗点的语言帮我解释下

那要看是读、写什么了

对内存:
读 取出其中的内容
写 把数据存入内存

对(硬盘)文件:
读 把文件的内容取出来,存入内存
写 把内存中的内容存到文件中去

‘陆’ c语言里文件的读和写是什么意思

文件占用磁盘上的空间,保存信息。

读就是把信息从空间里拿出来,保存到变量里。

写就是把变量里的内容放到空间里。

注意: 由于C语言是缓冲写,所以要在关闭或刷新后才能看到文件内容。电脑处理文本型文件和二进制型文件的速度不同。因为电脑只能识别二进制,所以在处理文本型文件时需先将其转换为二进制型文件。

‘柒’ c语言怎么理解文件的输入输出相当于读和写这两个一直搞反

在理解输入和输出之前,先需要明白文件是放在硬盘当中的。当写入文件的时候,是把数据从内存放到硬盘里。当读取文件的时候,是把文件的数据从硬盘放到内存再进行下一步处理。而输入和输出是针对内存来讲的。写对应着输出,读对应着输入。

不学计算机的就不要讲了,误人子弟。

‘捌’ c语言文件读写

我写过很多了

其实很简单 要修改 没过于两种办法

1 全部读入内存 修改好 全部写入文件

2 逐行读入 如果不是要修改的内容 直接写入临时文件

如果是修改内容 修改后写入临时文件

完成后 把源文件删除 临时文件拷贝过来 改名

‘玖’ c语言 文件读写

void save()中
fprintf(fp,"\t\t\t\%s\t%s\t%2.1\tf%2.1f\t%2.1f\n",stud[i].num,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3);
【%2.1\tf】这个是不是有问题?

‘拾’ c语言文件读写方式:两种读写方式r和r+到底有什么区别啊

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fd;
char buf[1024];
char e[10];
int i,j=3;
if ((fd = fopen("file1.dat","ab+")) == NULL) //r是打开一个用于读取的文本文件.rb+是打开一个文件,并在末尾追加数据
{
printf("ERROR\n");
return 0;
}
else
{
fread(buf,1024,1,fd); //读取源文件的内容,我写的file1.dat的文件内容为三个字符
buf[j] = '\0';
printf("原文件内容为%s\n",buf);
printf("请输入你要添加的数据\n");
gets(e); //你要加在源文件后面的内容,键盘输入
fwrite(e,strlen(e),1,fd); //把你输入的字符串加在文件后面
j+=strlen(e); //文件内容增加
fseek(fd,0,0); //把文件的标号偏移到开头
fread(buf,1024,1,fd); //读取写入后的文件内容
buf[j] = '\0';
printf("写入后的文件为%s\n",buf);
}
}

r是打开只读文件.
这是我改的,可以读写