精华内容
下载资源
问答
  • c语言文件流实现按词读取(以空格、分号等作间隔) 1.基本描述 在之前的作业中,认真编写代码,从中发现不少知识积累上的欠缺。编程中使用到的c语言文件读取,要求是按照获取到一个完整的词,并对其进行处理。 写有...

    c语言文件流实现按词读取(以空格、分号等作间隔)

    1.基本描述

    在之前的作业中,认真编写代码,从中发现不少知识积累上的欠缺。编程中使用到的c语言文件读取,要求是按照获取到一个完整的词,并对其进行处理。
    写有java或c语言源程序的.txt文件,词组与词组之间,常有 ‘.’ 、( 、) 、{ 、} 、【、 】、空格等符号间隔开来,可以利用这些符号当做截断字符串的判断条件

    2.代码实现

    使用C语言编写,并使用fgetc函数,每个字符读入并进行判断
    下面是部分代码:

    	void  FileRead(char filename[]){
    	FILE* fp;//必须要定义的指针
    	int i=0,counter=0;
    	int ch;
    	char str[14];//用于.txt文件按词读取,即暂存器
    	fp = fopen(filename, "r");//打开文件夹 
       do{	
             //读出词
    		do
             {
    		      ch=fgetc(fp);
    			  if((ch>=97&&ch<=122)||(ch>=65&&ch<=90))//只有ch为字母时才录入
    			  {
    	               str[counter]=(char)ch;	  
    	               counter++;
    			  }		 }while(ch!='.'&&ch!='{'&&ch!='}'&&ch!='('&&ch!=')'&&ch!='['&&ch!=']'&&ch!=32&&ch!=59&&ch!=-1);   //上为判定是否录入一完整词的判定结束条件
    	 	 printf("str:%s\n",str); 
    
            /*
            这中间可以编写一些关于处理字符串的操作
    */
             //清空暂存的数组
             for(i=0;i<14;j++)
    			 str[i]=0;
             counter=0;
    
    	}while(ch!=EOF);//当文件读完时结束
    

    }

    void main()
    {	    
        char filename1[12];
        printf("请输入该文件名");
        scanf("%s",&filename1);
        FileRead(filename1);
    
    
    }
    
    

    以上就是实现的代码,可能有些粗糙,但基本使用上无大问题,下图为上机运行得结果
    这是上级运行后的结果
    要注意接收fgetc获得的字符的ch需定义为int型,具体原因有时间再开一篇,网上也可以查到相关的资料与原因。

    展开全文
  • C语言文件读取——电子词典实现

    千次阅读 2018-11-14 20:46:54
    文件流的打开与关闭 关键字的查找与输出 char e[8000][20],c[8000][20]//英文和中文数组,要由文件读入 int wordsNum = 0;//词库中实际的词汇条款 int BinSearch(int low,int high,char *key); 文件的打开与...

    简单电子词典实现

    关键字:

    文件流的打开与关闭

    关键字的查找与输出

    char e[8000][20],c[8000][20]//英文和中文数组,要由文件读入

    int wordsNum = 0;//词库中实际的词汇条款

    int BinSearch(int low,int high,char *key);

    文件的打开与关闭

     

    int main()

    {

    char key [20]; //待查询关键字

    //将文件中的数据读入到对象数组中

    FILE * fp;

    fp = fopen(fp,“dictonary.txt”,“r”); //以输入的方式打开文件

    if(fp == NULL)

    {

    PERROR(“打开文件失败”);

    出口(0);

    }

    而(!FEOF(FP))//读取成功,则重复读  

    {

    的fscanf(fp的,“%S%S”,E [worldsNum],C [wordsNum]);

    ++ wordsNum;

    }

    FCLOSE(FP);

    //输入待查关键词并用二分法查找法进行查询

    做 

    {

    的printf(“请输入要查的词(0000结束):”);

    的scanf(“%S”,键);

    如果(strcamp(键,“0000”)== 0)

    打破;

    其他

    {

    int low = 0,high = wordsNum-1; //重置当前查找区间上下值

    int index = BinSearch(低,高,键);

    if(index == -1)

    的printf(“无法查询到此单词的相关内容\ n”);

    其他

    的printf(“%S的中文意思是:%S \ n \ n”个,键,C [指数]);

    }

    }

    而(1)

    的printf(“欢迎再次使用\ n \ n!”);

    回归0;

    }

     

    注: feof()是检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0,一般用来检测文件是否到达末尾

     

    二分差查找法

    int BinSearch(低,高,字符* k)

    {

    中期;

    而(低<高)

    {

    mid =(低+高)/ 2;

    如果(的strcmp(E [MID],K)== 0)

    {

    返回中间; //查找成功返回

    }

    如果(的strcmp(E [MID]中,k)> 0)

    高=中1; //继续在e [low..mid-1]中查找

    其他 

    low = mid + 1; //继续在e [mid + 1..high]中查找

    }

    返回-1; //当低>高时表示查找区间为空,查找失败

    }

     

    运行效果截图

    展开全文
  • 在服务端中,读取properties资源文件中的数据1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...Java读取、写入、处理Excel文件中的数据...

    在服务端中,读取properties资源文件中的数据

    1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...

    Java读取、写入、处理Excel文件中的数据&lpar;转载&rpar;

    原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Ex ...

    Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据

    Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软 ...

    matlab读取excel文件中的数据

    1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...

    计算机二级-C语言-程序填空题-190117记录-对文件的处理,复制两个文件,往新文件中写入数据。

    //给定程序的功能是,调用函数fun将指定源文件中的内容赋值到指定目标文件中,复制成功时函数返回1,失败时返回0,把复制的内容输出到终端屏幕.主函数中源文件名放在变量sfname中,目标文件名放在变量 ...

    &lbrack;Python&rsqb;将Excel文件中的数据导入MySQL

    Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...

    &lbrack;数据科学&rsqb; 从csv&comma; xls文件中提取数据

    在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/databas ...

    MySQL添加CSV文件中的数据

    一.MySQL添加csv数据 此问题是前几天整理数据的时候碰到的,数据存在 CSV文件中(200多万记录),通过python 往数据库中导入太慢了,后来使用MySQL 中自带的命令 LOAD DATA ...

    java向文件中添加数据---手动版日志添加

    核心代码为创建多级文件夹创建 //目标文件 File file=new File(filePath); //若不存在即创建文件 if(!file.exists()) { if (!file.getPa ...

    将CSV文件中的数据导入到SQL Server 数据库中

    导入数据时,需要注意 CSV 文件中的数据是否包含逗号以及双引号,存在时,导入会失败 选择数据库 -> 右键 -> 任务 -> 导入数据 ,然后根据弹出的导入导出向导(如下图)中的提 ...

    展开全文
  • 主要介绍了C语言读取文件流的相关函数用法简介,包括fread()函数和feof()函数的使用,需要的朋友可以参考下
  • 用这个程序读取txt文档为啥会出错呢,单词和词义中间是'\t’或' '。 单词有几万个,词意也很长 怎么才不会超时啊![图片说明](https://img-ask.csdn.net/upload/201707/07/1499408969_765679.jpg)。![图片说明]...
  • c语言实现文件的行读取、插入、删除 一、要求 读取指定行的数据 将读取到的数据插入到另一指定行 将刚刚插入的数据删除恢复原文件 二、源代码 程序代码——test3All.c #include <stdio.h> #include <...

    c语言实现文件的行读取、插入、删除

    一、要求

    1. 读取指定行的数据
    2. 将读取到的数据插入到另一指定行
    3. 将刚刚插入的数据删除恢复原文件

    二、源代码

    • 程序代码——test3All.c
    #include <stdio.h>
    #include <stdlib.h>
    #include<unistd.h>
    #include<errno.h>
    #include<sys/types.h>
    #include<fcntl.h>
    #include<string.h>
    #define SIZE 512
    #define OK 1
    #define ERROR 0
    
    char* readFile(char* filePath, int readline)
    {
        static char data[SIZE]; //静态局部变量
        int line=0;//记录当前读取行数
        FILE *fp=fopen(filePath,"r");//打开文件,只读
        if(!fp)
        {//打开失败
            printf("can't open file\n");
            return "false";
        }
        while(!feof(fp))
        {
        	line++;
            fscanf(fp,"%s", &data);
            if(line == readline)
            {//当读取到第 readline 时,返回读取内容
                return data;
                break;
            }
        }
        fclose(fp);
    }
    
    int writeFile(char* filePath, int writeline, char* buf)
    {
        char data[SIZE][SIZE];
        int line=0;//记录当前读取行数
        int sign=-1, index;
        fpos_t position;//文件流位置指针
        FILE *fp=fopen(filePath,"r+");//打开文件,读写
        if(!fp)
        {//打开失败
            printf("can't open file\n");
        }
        
        //循环使文件流位置指针到达需写入位置
        for( line=1; line<writeline; line++)
        {
         	fgets(data[line], SIZE, fp);
         	if(feof(fp))	break;
        }
        sign = fgetpos(fp, &position);	
        //记录文件流位置指针当前位置即写入位置
        
        if(sign)//fgetpos执行失败
        	return ERROR;
        index = line;//记录数组中后面数据的位置
    
        //保存后面数据
        while(!feof(fp))
        {
        	fgets(data[line++], SIZE, fp);
        }
        
        fsetpos(fp, &position); //设置文件流指针回到需写入位置
        fprintf(fp, "%s\n", buf);
        for( ; index<line; index++)
        {
        	fprintf(fp, "%s", data[index]);
        }
    //    printf("%s",data[line-1]);
    //    fgets(data[line], SIZE, fp);
    //    printf("%s",data[line]);
        fclose(fp);
        return OK;
    }
    
    int delete(char* filePath, int writeline)
    {
        char data[SIZE][SIZE];
        int line=0;//记录当前读取行数
        int sign=-1, index;
        fpos_t position;//文件流位置指针
        FILE *fp=fopen(filePath,"r+");//打开文件,读写
        if(!fp)
        {//打开失败
            printf("can't open file\n");
        }
        
        //循环使文件流位置指针到达需删除位置
        for( line=1; line<writeline; line++)
        {
         	fgets(data[line], SIZE, fp);
         	if(feof(fp))	break;
        }
        sign = fgetpos(fp, &position);	
        //记录文件流位置指针当前位置即删除位置
        
        if(sign)//fgetpos执行失败
        	return ERROR;
        index = line;//记录数组中后面数据的位置
    //printf("第%d行:%s", index, data[index]);
    
        //保存后面数据
        while(!feof(fp))
        {
        	fgets(data[line++], SIZE, fp);
        }
        fclose(fp);
        
        //以覆盖写入方式重新打开输入流
        fp = fopen(filePath, "w");
        if(!fp)
        {//打开失败
            printf("can't open file\n");
            return ERROR;
        }
        
        int n=0;
        for( ; n<index; n++)
        {
        	fprintf(fp, "%s", data[n]);
        }
        for(n=index+1; n<line; n++)
        {
        	fprintf(fp, "%s", data[n]);
        }
        
        fclose(fp);
        return OK;
    }
    
    
    int main(int argc, char **argv)
    {
        char* buf;//保存读取的内容
        
        //读取
        int readline = 0;
        printf("请输入读取行数:");
        scanf("%d", &readline);
        buf = readFile(argv[1], readline);
        printf("%s\n", buf);
        
        //写入
        int writeline = 0, sign;
        printf("请输入写入行数:");
        scanf("%d", &writeline);
        sign = writeFile(argv[1], writeline, buf);
        if(sign == OK)
        	printf("Write over!\n");
        else 
        	printf("Write ERROR!\n");
    /*-----------------------------------------------------
    	这里利用系统函数执行了cat.sh文件
    	该shell脚本即调用cat命令显示文件内容
    -----------------------------------------------------*/
        printf("删除前:\n");
        system("sh ./cat.sh");
    
        //删除    
        sign = delete(argv[1], writeline);
        if(sign == OK)
        	printf("Delete over!\n");
        else 
        	printf("ERROR!\n");
        
        printf("删除后:\n");
        system("sh ./cat.sh"); 
        return 0; 
    }
    
    • 脚本代码——cat.sh

    注意:编写完成后要给脚本执行权限!!!

    #!/bin/bash
    
    cat -n ./t.txt
    

    三、实验结果截图

    实验结果
    参考文章:链接

    展开全文
  • c语言文件读取与写入

    千次阅读 2018-12-10 13:35:48
    fopen的介绍转自百度百科... 函数原型: FILE * fopen(const char * path, const char * mode); 相关函数:open, fclose, fopen_s, _wfopen 返回值:文件顺利打开后,指向该文件指针就会被返回。如果文件打...
  • #include<stdio.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt","r");...printf("文件读取失败!\n"); return -1; } //读文件 const int SIZE = 100; c...
  • 02功能之读写文件流操作(C语言实现读取文件指定一行) 1 C语言读取文件指定一行 // 读取文件指定一行 int ReadLine1(const char *fileName, char outBuf[], int n){ int whichLine = n; //指定要读取哪一行 int ...
  • c语言文件录入与读取

    千次阅读 2018-12-31 21:55:45
    打开文件使用fopen()函数来创建一个新的或打开一个已有的文件,这个调用会初始化FILE的一个对象,类型FILE包含了所有用来控制的必要的信息。 fopen调用格式: fopen(文件名,文件使用格式); 使用fropen()函数...
  • 通常我们很多场合都需要用到如何读增量的文件,其实应用领域还是蛮多的。日志读取。数据同步等应用场合。都是可以用上的。 #include <stdio.h> #include <stdlib.h> #include <string.h> #...
  • 相关函数:fopen, fwrite, fseek, fscanf 头文件:#include 定义函数:size_t fread...函数说明:fread()用来从文件流读取数据.  参数stream 为已打开的文件指针, 参数ptr 指向欲存放读取进来的数据空间,
  • C语言中对文件读取操作

    万次阅读 多人点赞 2019-01-18 18:30:41
    ** 有段时间没来这儿更新博客了,前段时间有朋友私信我关于文件操作方面的知识,今天小编就分享一篇关于C语言操作文件流的文章,希望能帮到有需求的朋友!** 首先我在这说明一下文件流的作用,在我们写代码的时候...
  • 头文件:#include fread()函数用于从文件流读取数据,其原型为:size_t fread(void *buffer, size_t size, size_t count, FILE * stream);【参数】buffer为接收数据的地址,size为一个单元的大小,count为单元个数...
  • C语言文件流

    2014-10-14 17:44:31
    FILE 文件结构体 fopen 打开某个硬盘上的数据文件 fwrite 向文件里写入数据 fread 向文件里读取数据 fclose 关闭文件流
  • c语言文件操作

    千次阅读 多人点赞 2018-12-21 09:26:46
    C语言文件处理功能,大体上分为两种:一种是设置缓冲区,另一种是不设置缓冲区。因为不设置缓冲区的方法直接对磁盘进行操作,速度较慢,并且由于不是C的标准函数,跨平台操作时容易出问题。本文只介绍设置缓冲区的...
  • C语言中的文件操作在C语言中,文件是存储一连串bytes的数据,可以被当作文本或者位串来处理文件也是一种输入输出,被定义在stdio.h中的FILE类型变量FILE *myFile指针指向文件的起始位置EOF是定义在头文件stdio.h中...
  • C语言文件操作

    2015-04-13 14:51:03
    C语言文件操作的基本语言规范,输入输出,如何读取和存储文件。
  • C语言_文件流练习

    2021-04-21 11:04:28
    2021-04-20 文件io练习 题1:fputc和fgetc练习,argv[1]为...然后再读取出来打印到屏幕 */ #include <stdio.h> int main(int argc, char **argv) { FILE* fp=fopen(argv[1],"w"); int ch; printf("请输
  • C语言文件之文件基础

    2020-09-29 15:49:05
    C语言文件之文件基础 1.文本文件 以ASCLL编写的可视化的字符型文件,不同的文字以特殊编码存在,如GBK,utf-8等 2.二进制文件 直接以原生二进制码存放的文件,如BMP等图片文件,MP3音频文件,exe等可执行文件 3....
  • 如题fgets 是系统输入函数,从文件流读入一行字符串,含空格键等,函数原型是: char * fgets ( char * str, int num, FILE * stream ); 输入成功时,返回 char 型指针,指向 读入的字符串内容,含换行键(gets 类似...
  • fwrite函数 ...若定义了文件位置指示符,则以成功写入的字符数为单位向前移动。当发生错误时,该文件位置指示符的值不可预测。 返回成功写入的元素个数。仅当发生写入错误时,元素个数会

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 619
精华内容 247
关键字:

c语言文件流读取文件

c语言 订阅