精华内容
下载资源
问答
  • 由于.csv格式的文件是如下的格式,所以我们知道它是以逗号作为分隔符的,一的结束符就是\n 2018/10/24 16:28,橙子,水果 2018/10/21 10:16,啤酒,饮料 2018/10/22 10:16,水杯,玻璃瓶 2018/10/23 09:19,硫酸,腐蚀品 ...
  • C语言行读取文件txt

    万次阅读 多人点赞 2019-11-01 10:58:44
    参考:怎么用c语言实现读取一个txt文件里的数据 要按读出来 打开文件 fopen(“需要打开的路径”) 然后使用fgets函数读取行 #include <stdio.h> #include <stdlib.h> #include <string.h> #...

    参考:怎么用c语言实现读取一个txt文件里的数据 要按行读出来

    打开文件 fopen(“需要打开的路径”)
    然后使用fgets函数读取行

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX_LINE 1024
    int main()
    {
     char buf[MAX_LINE];  /*缓冲区*/
     FILE *fp;            /*文件指针*/
     int len;             /*行字符个数*/
     if((fp = fopen("test.txt","r")) == NULL)
     {
     perror("fail to read");
     exit (1) ;
     }
     while(fgets(buf,MAX_LINE,fp) != NULL)
     {
     len = strlen(buf);
     buf[len-1] = '\0';  /*去掉换行符*/
     printf("%s %d \n",buf,len - 1);
     }
      return 0;
    }
    

    参考:c语言一行一行的读取txt文件
    工作中做的项目,经常需要读取一些脚本,就是一些txt文件,用python读取很简单,但是我们很多工具也是用c/c++语言写的,用c的话读取文件我一般是按照如下的方式:

    while(fscanf(pFile,"%[^\n]",CmdLine)!=EOF)
    { 
    fgetc(pFile);
    ...
    }
    

    其中,pFile是调用fopen函数返回的文件句柄,cmdline是定义的char型数组,用来存储一行的内容。此code运用了fscanf的方式,一行一行的读取txt文件,在while中做处理。其中的%[^\n]属于正则表达式,代表不遇到换行符就一直读下去,直到遇到换行符\n,fscanf函数就退出。退出后进入while,执行fgetc函数,读取一个字符,文件句柄向后移动一个字符,相当于跳过了\n换行符,下一次就从下一行开始读了。

    参考:fscanf()函数详解
    fscanf()函数(有点像正则表达式):

    功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。

    用 法:int fscanf(FILE *stream, char *format,[argument…]);

    int fscanf(文件指针,格式字符串,输入列表);

    for example:

    FILE*fp;

    chara[10];

    intb;

    doublec;

    fscanf(fp,"%s%d%lf",a,&b,&c)

    返回值:整型,数值等于[argument…]的个数

    首先我有一个data。txt的文件里面的数据格式如下:
    
    2,50,41,w,20.585828
    
    4,52,51,r,52.012547
    
    .........................
    
     许多条类似的记录,都是以,来分隔的
    
    .......................
    
    
    
    我实现的功能就是把上面文件中的数据的五个字段赋值给相应的五个变量,并且输出这些变量的值。实现的程序如下:
    
    #include<stdio.h>
    #include<stdlib.h>
    
    
    int main()
    {
      int fd;
      long dev;
      long offset;
      long length;
      char ch;
      double ts=0.000000;
      if((fd=fopen("/home/haixian/ceshi/data.txt","r"))<0)
       {
         printf("open the file is error!\n");
         exit(0);
       }
      lseek(fd,0,SEEK_SET);
      
      
      while(5==fscanf(fd,"%ld,%ld,%ld,%c,%lf\n",&dev,&offset,&length,&ch,&ts))
      {在这里就是第二个参数指定分隔参数的格式,在这里使用的是,来分隔。这样就很容易的获取了记录的各个字段的值并不需要自己编写函数来进行解析什么的。
         printf("%ld,%ld,%ld,%c,%lf\n",dev,offset,length,ch,ts);
      }
    close(fd);
    return 0;
    }
    
    展开全文
  • #include &lt;stdio.h&gt; int main() { int ch; int count; FILE *fp = freopen("in.txt","r",stdin);... /* 过第一 */ fgets(buf, sizeof(buf), fp); ...
    #include <stdio.h>
    
    int main()
    {
        int ch;
        int count;
        FILE *fp = freopen("in.txt","r",stdin);
        char buf[1024];
    
        fp = stdin;
        /* 跳过第一行 */
        fgets(buf, sizeof(buf), fp);
        count = 1;
        while (fgets(buf, sizeof(buf), fp)) {
            /*  检测最后一行 */
            if (EOF != (ch = fgetc(fp))) {
                ungetc(ch, fp);
                printf("%6d\t%s", ++count, buf);
            } else {
                break;
            }
        }
        return 0;
    }
    

     

    展开全文
  • c语言获取文件第n数据

    千次阅读 2018-06-30 17:31:59
    实现方法:使用fscanf偏移文件位置,再对文件进行读取。 #include #include #include int main(int argc, char const *argv[]) { /* code */ FILE *fin; char buf[1024]; int x,y; int i; fin = fopen("/...

    运行环境:ubuntu 64bit

    实现方法:使用fscanf偏移文件位置,再对文件进行读取。

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int main(int argc, char const *argv[])
    {
    	/* code */
    	FILE *fin;
    	char buf[1024];
    
    	int x,y;
    	int i;
    	fin = fopen("/home/mycode/abc.txt","r");
    	for(i = 0;i < 2;i++)
    	{
    		fscanf(fin,"%*[^\n]%*c");
    		/******************************************************
    			%*		:	是“跳过”
    			[^\n]	        :	字符串的分隔符是"\n", 中括号里可以写 分隔符 表
    			%*[^\n]         :	跳过 \n 前的所有字符串。
    			%*c 	        :	是“跳过”行尾 的 换行符
    		******************************************************/
    	}
    	//while((fgets(buf,1024,fin)) != NULL)
    	#if 0
    	//这里获取第3行到文件尾的数据
    	while(fgets(buf,1024,fin))
    	{
    		printf("buf : %s\n", buf);
    		memset(buf,0,1024);
    	}
    	#endif
    	//这里只是获取第3行数据
    	fgets(buf,1024,fin);
    	printf("buf : %s\n",buf );
    	fclose(fin);
    
    	return 0;
    }

    结果如下:

    展开全文
  • 最近在家又开始看一看C 结果发现文件这块不太熟练 用的时候发现使用文件读取txt里的内容时读不到第一的内容 感到有些疑惑 我用的是devcpp 希望有老哥指点一二 ``` #include #include using namespace std; ...
  • //这条语句是退出程序的意思 } //while循环条件的意思是从fp这个文件指针中最大能读取256个字符给b这个数组, //当然如果你文件中一不够256个字符的话,fgets函数会因为读取到换符 //而结束,当读到文件结尾...

    让我们从一道例题来分析,分析我都写在注释里面了。
    例:编写一个程序,以一个字符和任意文件名作为命令行参数。然后输出字符所在行内容。(此题目是我为了讲解而自己想的,若有不足之处请多指教)
    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //这个函数的返回值用来作为主函数中if语句是否输出
    int has_ch(char ch, const char *line);
    int main(int argc, char *argv[])
    {
    	FILE *fp;//文件指针
    	char a;
    	char b[256];//用来存储从文件中读取的内容,因为一行最大为能容纳256字符
    
    	a = argv[1][0];//读取给定的字符
    	//这个if语句用来判断文件是否已经打开,这条语句请不要缺少。
    	//我们现在是以打开一个文件来做例子,文件请自行设置
    	if ((fp = fopen(argv[2], "r")) == NULL){
    		printf("文件没有被打开\n");
    		exit(EXIT_FAILURE);//这条语句是退出程序的意思
    	}
    	//while循环条件的意思是从fp这个文件指针中最大能读取256个字符给b这个数组,
    	//当然如果你文件中一行不够256个字符的话,fgets函数会因为读取到换行符
    	//而结束,当读到文件结尾时fgets函数返回的NULL会退出循环。
    	while (fgets(b,256,fp))
    	{
    //if语句通过has_ch函数的返回值来判断是否打印读取的字符,也就是通过这个函数
    //来判断是否满足题目条件而打印字符。
    		if (has_ch(a, b))
    		//条件成立就打印读取到的一整行,不成立就开始下一行的判断
    			fputs(b, stdout);
    	}
    	fclose(fp);//程序完成后也不要忘关闭文件哦,养成一个良好的习惯。
    	return 0; 
    }
    int has_ch(char ch, const char *line)
    {
    //这个while循环通过指针的形式来遍历查到是否有特定的字符ch,有的话就返回1使
    //if语句进行从而打印有特定字符的一行,而这一行没有特定字符就返回0跳过主函数
    //的jf语句(ch是特定字符,line指针是主函数传过来的一行字符串)
    	while (*line)
    	if (ch == *line++)
    		return 1;
    	return 0;
    }
    

    因为每个人的需求不一样,所以这个例子希望能够给你们一些启发,觉得还不错的话,麻烦给点个赞吧。

    展开全文
  • c语言读取txt文件

    万次阅读 多人点赞 2017-02-28 16:11:18
    工作中做的项目,经常需要读取一些脚本,就是一些txt文件,用python读取很简单,但是我们很多工具也是用c/c++语言写的,用c的话读取文件我一般是按照如下的方式:while(fscanf(pFile,"%[^\n]",CmdLine)!=EOF) { ...
  • C语言 txt文件读写

    万次阅读 多人点赞 2019-03-07 13:32:47
    C语言txt文件读写 创建一个txt文本文件并写入数据: void file_write(char *stuid,char *name,float score) { //写数据 int i; FILE *outfile; outfile = fopen(&quot;scores.txt&quot;,&...
  • void handleEnterAfterBuf(char buf[])//用于去除fgets读取数据中的\n { //在参数 buf所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置 将指针指向这个位置 char* find = strchr(buf, '\n'); //找出...
  • 按照要求写了个读文件的程序,但是出了一点我不能理解的bug 希望老师指点指点 程序: ``` int main () { char comet[6]; char group[6]; FILE *input; input=fopen ("ride.in", "r"); ...
  • #include <stdio.h> #include <stdlib.h> #include <string.h> #define path "C:/Users/ZS/Desktop/test.ini" ...//实现读取配置文件的一,当的开头为#时则过这 void re...
  • // 将文件加载到内存中 txt_tmp = (char *)malloc(txt_size); fread(txt_tmp, txt_size, 1, fp); // handle printf("txt:\r\n%s",txt_tmp); // 从内存中释放文件 free(txt_tmp); fclose(fp); return 0; }
  • C语言文件读取并写入链表

    万次阅读 多人点赞 2018-09-24 17:11:06
    C语言没啥要逼逼的,直接上代码,用心体会 #include "stdio.h" #include "stdlib.h" /***************************** 链表节点结构体 ****************************/ typedef struct link_node { int ID; ...
  • 按照来读 1 按照字符串来读 2 FILE *fp; fp = fopen("test.cfg", "r"); //// 1 //如果是按照来读 char buffer[200]; //fscanf()中的format格式为"%[^\n]%*[\n]",取回车之前的内容到变量,并且将空格取走 ...
  • C语言——文件操作(读取文件保存到结构体)

    万次阅读 多人点赞 2019-03-09 16:25:02
    之前写过一篇文章实现了文件操作的任意读写,今天来实现文件操作,读取txt文件,将数据保存到结构体中。 C语言——文件操作(实现带空格字符串任意读写) 先介绍C语言中一个功能强大的函数——sscanf(),它是C语言...
  • 行读取文件,分别获得文件中的每一。2.读取文件中的每一个字符并写入字符串数组。 1.按行读取文件,分别获得文件中的每一。 char Buffer[100]; fp = fopen (“filename”, “r”); while(fgets(Buffer,sizeof...
  • C语言——文件操作(实现带空格字符串任意读写

    万次阅读 多人点赞 2019-03-03 11:29:21
    本文主要是记录自己在实现带有空格字符串任意读写时所...文件读写操作: fgetc ()从文件读取一个字符 函数原型:int fgetc(FILE *fp);功能说明 :从fp所指文件读取一个字符。参数说明 :fp文件指针,它指向...
  • C语言写的去除文件空格,vs2008编译
  • c语言如何从文件读取信息到链表——文件操作

    千次阅读 多人点赞 2021-01-02 12:15:56
    写这篇博客原因: ...但是发现,文件操作这方面很少有简单易懂实用的博客。我作为大一新生,把自己学到的一点点功能分享一下。希望可以加快学者们的步伐。 进入正题: 先看效果 是不是你们想要的。 ...
  • fp = fopen(“D:\visualcode\C语言读取及修改简单配置文件内容\test_fprintf\my_config”, “w”); char buffer[200]; scanf("%[^\n]", buffer); fprintf(fp, “%s\n”, buffer); scanf("%[^\n]", buffer); fprintf...
  • // 循环读取 文件的 每一 数据  fp = fopen("a.txt", "r+");  if (fp == NULL)   {  printf("open error! \n");  exit(1);   }    while( fgets(buff, sizeof(buff), fp))  {  /...
  • C语言读取文件(二)——fscanf 详谈

    万次阅读 多人点赞 2019-06-13 21:58:20
    fscanf 函数用于格式化读入文件中数据,可以大大提高读取文件的效率。这次笔者将最近使用该函数的一些经验记录下来。 第一部分:问题和结论 fscanf 函数的原型是: int fscanf(FILE* stream, const char* format, ...
  • C语言文件文件位置标记及其定位

    千次阅读 2020-06-11 17:29:13
    目录1.为什么需要顺序读写?2. 文件位置标记3. 文件位置标记的定位(1)....为了对读写进行控制,系统为每个文件设置了一个文件读写位置标记(简称文件位置标记或文件标记),用来指示“接下来要读写的下一个字符的位置”
  • C语言读取文件目录树

    千次阅读 2014-05-18 22:50:16
    这段时间笔者在准备一个比赛,需要用C/C++实现一个将磁盘的文件目录树读入到内存中(其实就是将磁盘中的文件目录树读入到一个树形结构中),笔者是搞JAVA的,这次要用C实现这样一个功能,着实让笔者头痛了很久,不过...
  • C语言文件的操作

    万次阅读 多人点赞 2018-12-18 23:24:05
    前言在谭浩强的C语言设计的第10张讲了有关文件的知识, 以往我们写的C程序的数据都是由键盘输入的 现在我们要对文件进行操作。 文件是操作系统的基本单位。是我们专业领域的重要的一部分。 就拿我们的编译器来说...
  • C语言FILE*如何过一个字符读取

    千次阅读 2020-03-29 10:22:48
    C语言文件指针过一个字符 使用fgetc(fp)白白地读取你想要过的下一个字符,让文件指针后移一位。
  • c语言直接读写ini配置文件

    万次阅读 2015-12-12 16:43:30
    现场好多地方反馈记录全采出来,无法入库。实际上采集部门专门做有一数据分析入库工具,但不是标准的,每个地方都需要采集部门特殊...高级语言操作ini文件很简单,有现有的库,但c语言,只能自己做一个了。分享下 C...
  • 使用c语言实现INI文件读写

    千次阅读 2019-04-06 15:27:14
    是按行读取,这就是它的格式! 而xml是类似二叉树的带层次结构的存储方式 INI则是以键值的方式将数据对应起来,类似数据库一样! 在Windows上我们可以使用一些自带API实现对INI文件读取写入,但是在其它系统...
  • // c02.cpp : C语言逐行读出文件内容 #include “stdafx.h” #include #include #define Max_LENGTH 1024 using namespace std; int main(void) { char str[Max_LENGTH]; FILE *fp; char ch; int lines = 0; memset...
  • 某些语句系统不执行直接

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,132
精华内容 10,452
关键字:

c语言读取文件跳行

c语言 订阅