精华内容
下载资源
问答
  • 关于用C读取TXT文件的指定问题,搞定不了
    2021-05-21 04:21:18

    已知如下程序,我在单位搞网络的,就大学的时候学过一点C,今天领导临时抓我来编

    ,不胜感激,临帖涕零…… 需求是读取指定行指定位置的内容有可能是字符也有可能是数字!

    但是之后在UNIX下的C执行之后报错,貌似没有new 这个函数,也没有conio.h这个头文件啊,能不能帮改进一下。但是我使用的是UNIX上的VI编写,貌似没有conio.h的头文件跟NEW函数,那个高人帮我改写一下啊!不胜感激

    #include

    #include

    #include

    void main()

    {

    char *pBuff;

    FILE *pf = fopen(“data.txt”,”rb”);

    fseek(pf,0,SEEK_END);

    int len =ftell(pf);

    if(len==0)

    {

    printf(“文件是空的\n”);

    fclose(pf);

    return;

    }

    pBuff = new char[len];

    memset(pBuff,0,len);

    fseek(pf,0,SEEK_SET);

    fread(pBuff,len,1,pf);

    fclose(pf);

    char *pBuffLine = new char[len];

    char *pos;

    pos = pBuff;

    int i,j=0;

    int linelen;

    printf(“行号:”);

    int LineNum;

    scanf(“%d”,&LineNum);

    int num =0;

    for(i=0;i

    {

    if(*pos == 0xD && *(pos+1) ==0xA)

    {

    num++;

    linelen = pos -(pBuff+j);

    memset(pBuffLine,0,len);

    memcpy(pBuffLine,pBuff+j,linelen);

    *(pBuffLine+linelen)=0;

    if(num == LineNum)

    {

    printf(“%s\n”,pBuffLine);

    return;

    }

    pos+=2;

    j=pos-pBuff;

    continue;

    }

    pos++;

    }

    if(j!=len)

    {

    num++;

    linelen =len-j;

    memset(pBuffLine,0,len);

    memcpy(pBuffLine,pBuff+j,linelen);

    *(pBuffLine+linelen)=0;

    if(num == LineNum)

    {

    printf(“%s\n”,pBuffLine);

    return;

    }

    }

    }

    更多相关内容
  • 主要为大家详细介绍了C语言实现按行读写文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C语言读取txt文件的每

    千次阅读 2021-12-22 22:25:48
    #include <stdio.h>...//读取文件 int main() { char c[1000]; FILE *fptr = fopen("/passwd.txt", "r"); while (fgets(c,sizeof(c),fptr) != NULL) { printf("%s",c); } fclose
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //读取文件每行
    
    int main()
    {
        char c[1000];
        FILE *fptr = fopen("/passwd.txt", "r");
    
        while (fgets(c,sizeof(c),fptr) != NULL)
        {
            printf("%s",c);
        }
     
        fclose(fptr);
        
        return 0;
    }
    
    
    展开全文
  • 下面小编就为大家带来C语言txt文件中逐行读入数据存到数组中的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 各种格式的文件用什么软件打开.$$$TemporaryFile)Q7?...{9f4f.$$FOS/2Database用c语言如何读入并使文本文件某一列排序输出?你可以酱紫: # include int main(void){ FILE *p;//文件指针 char ch[1000];/...

    各种格式的文件用什么软件打开.$$$TemporaryFile)Q7?5g4U5m&_。@。m;K"S.$$AOS/2club.looaoo.net-s;X'a)B.N,w7\;{9f4f.$$FOS/2Database

    用c语言如何读入并使文本文件按某一列排序输出?

    你可以酱紫: # include int main(void){ FILE *p;//文件指针 char ch[1000];//1000你可以改滴~ int i = 0; p = fopen("", "r");//第一个字符串是你文件路径,路径中的\要写成\\,文件名必须带后缀 if (。p)//如果文件打开失败,fopen返回NULL(0) { p

    60520feb37097ccec571baf8306b43d6.png

    用C语言如何读取TXT文件中列数据?

    用C语言如何读取TXT文件中的每行的第一个数据? txt文本数据如下 0001 01.用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2.例程: #include#includevoid main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; //第三行,第四列 FILE *fp = fopen("dat

    怎么用C/C++语言读取excel文件的某一行某一列

    用C语言如何读取TXT文件中的每行的第一个数据? txt文本数据如下 0001 0# include #include int main() { FILE *ptr = fopen("e:\\stuin.txt","r"); char a[80],b[80]; while(。feof(ptr)) { fscanf(ptr,"%s",a);//根据空格去每行第一个字符串,也可以用%d fgets(b,sizeof(b),ptr); //若空格后还有数据。

    c语言中如何读取文件中的某一列数据?

    用linux下的c语言读取txt文件中的列数据

    C语言中如何读取TXT文件中某一列的数据存放到一个比如读取图片中第二列到一个数组

    你的 3 列 数据文件 读第二列,可用 格式: "%*d %lf %*lf" 程序: #include int main() { FILE *fin; double a[200]; //数组大小要足够 int i,n; fin=fopen("a.dat","r"); //打开a.dat文件 if (。fin){printf("open error\n"); return 1;}; //打

    c语言 读取文件中某一行的前一行

    在c语言中如何读取文件中某一行的前一行

    C语言中如何将文件中的某行的字符串读取出来?

    例如 我的文件中一行里是 ABC DEF 10 20 并且每一行都是 %s %s %d %d#include #include #include #define MaxCols 2000 //设定每行字符数不超过MaxCols,根据变化调整 //获取已经打开文件fp的第line行内容到stri,如果成功返回得到的字节数,//如果没有那么多行,返回-2 int getlinetxt(FILE *fp,int line,char *s

    用fgets读入一行,用sscanf 读出第一列数据 下面假定第一列数据作为字符串,用 sscanf(buf,"%s", 。。。格式读。 类似,整型用 %d 浮点用 %f %lf #include #include main(){ char buf[100]; char col[100][30]; int n=0; FILE *fp = fopen(

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

    千次阅读 多人点赞 2020-12-22 17:16:55
    事情是这样的,给出TXT文本文件,里面存储的有多条数据,将数据插入数据库。 每条数据的格式: `BH001;属性1;属性2;属性3;属性4;属性5;` 但是给出的文档有问题,会有多出换行的数据,无法正确插入 `BH001;属性1;...

    今天在工作中遇到一些问题。
    事情是这样的,给出一个TXT文本文件,里面存储的有多条数据,将数据插入数据库。
    每条数据的格式:
    BH001;属性1;属性2;属性3;属性4;属性5;
    但是给出的文档有问题,会有多出换行的数据,无法正确插入
    BH001;属性1;属性2;
    属性3;属性4;属性5;

    一共几十万条数据,那我就不可能一个个去找,这时我发现每条属性的开头都是B,那么我就可以用C语言读取每一行的数据,判断第一个字符是不是B,如果不是,把这个行数输出出来,然后可以在TXT中编辑->转到输入行数修改即可。

    #include <stdio.h>
    int main() {
    	FILE *fp;
    	fp=fopen("C:\\Users\\Lenovo\\Desktop\\a.txt","r");  
    	int i = 0;
    	char str[1000];
    	while(fgets(str, 500, (FILE*)fp)!=NULL) {
    		i++;
    		if(str[0]!='B') {
    			printf("%d\n", i);
    			i--;
    		}
    	}
    	fclose(fp);
    } 
    

    但是算出来有问题的数据也有几百条,一条条改也是比较费时间的。那我就先把有问题的数据线存储到一个txt中。

    #include <stdio.h>
    int main() {
    	FILE *fp, *fp1;
    	fp=fopen("C:\\Users\\Lenovo\\Desktop\\a.txt","r");  
    	fp1=fopen("C:\\Users\\Lenovo\\Desktop\\index.txt", "w");
    	int i = 0;
    	char str[1000];
    	while(fgets(str, 500, (FILE*)fp)!=NULL) {
    		i++;
    		if(str[0]!='B') {
    			printf("%d\n", i);
    			fprintf(fp1, "%d\n", i-1);
    			i--;
    		}
    	}
    	fclose(fp);
    	fclose(fp1);
    } 
    

    然后我在网上查了一下,修改TXT中的内容的话可以先创建一个TXT,将新改的内容插入这个新的TXT中。
    对于有问题的行数,我可以一次读两行,把前一行的换行去掉,然后插入到新的TXT中,就能解决问题了。

    #include <stdio.h>
    #include <string.h>
    int main() {
    	FILE *fp, *fp1, *fp2;
    	fp=fopen("C:\\Users\\Lenovo\\Desktop\\a.txt", "r");
    	fp1=fopen("C:\\Users\\Lenovo\\Desktop\\index.txt", "r");
    	fp2=fopen("C:\\Users\\Lenovo\\Desktop\\a1.txt", "w");
    	
    	//用来存储出问题的行数 
    	int index[1020];
    	int length=0;
    	//将出问题的行数读取出来 
    	while(fscanf(fp1, "%d", &index[length])!=EOF)
    		length++;
    	//末尾设置为无限大,直到所有的数据都读取完 
    	index[length]=99999999;
    	
    	char str[1020], str1[1020];
    	int i=0, j=0;
    	while(fgets(str, 500, (FILE*)fp)!=NULL) {
    		i++;
    		//比较当前行数和出问题的行数是否相等 
    		while(i==index[j]) {
    			fgets(str1, 500, (FILE*)fp);
    			int len = strlen(str);
    			//将前一行数据的换行去除 
    			str[len-1]='\0';
    			//拼接两个字符串 
    			strcat(str, str1);
    			j++;
    		}
    		fprintf(fp2, "%s", str);
    	}
    	fclose(fp);
    	fclose(fp1);
    	fclose(fp2);
    	return 0;
    } 
    
    展开全文
  • 如图所示,我的txt文本如下所示,我想读取第10的数据,并且把第10的7个数据都取出来: int SetPositionByLine(FILE *fp, int nLine) { int i = 0; char buffer[100]; fpos_t pos; rewind(fp); ...
  • 工作中做的项目,经常需要读取一些脚本,就是一些txt文件,用python读取很简单,但是我们很多工具也是用c/c++语言写的,用c的话读取文件我一般是按照如下的方式:while(fscanf(pFile,"%[^\n]",CmdLine)!=EOF){fgetc...
  • C语言替换文件某一行

    2021-05-23 08:12:11
    C语言提供了文件操作,但是替换文件某一行比较麻烦,下面是我使用的一个方法,文件中存贮的内容如下所示:11 1122 0 1122 * * 0 022 222 0 222 * * 0 ...
  • 我看网上只有C++的,可是我比较喜欢C的文件操作,于是我自己写了一个 unsigned long GetSeek(FILE *... //fgets的特性,读取到换行符就停下,如果一行大于1024就会溢出 fseek(fp,1L,SEEK_CUR); //切换到下一行 } re
  • C语言行读取txt文件详解

    千次阅读 2022-02-07 19:47:40
    按行读取txt文件,每一行由1个字符串和4个浮点型数据组成,如下图所示: //data.txt china 0.1 0.2 0.3 0.4 japan 0.1 0.2 0.3 0.4 代码 #include<stdlib.h> #include<stdio.h> int main() { FILE *...
  • C语言 一行一行读取文件txt

    万次阅读 多人点赞 2019-11-01 10:58:44
    参考:怎么用c语言实现读取一txt文件里的数据 要按读出来 打开文件 fopen(“需要打开的路径”) 然后使用fgets函数读取行 #include <stdio.h> #include <stdlib.h> #include <string.h> #...
  • 但是因为我要从log.txt(你提供的程序得到的,里面内容是当前文件夹里所有TXT文件的名称)里提取内容(就是TXT名称,比如123456.txt)放到数组buff里面, fp=fopen(buff,"r");却不能打开。不知道为什么?又怎么...
  • C语言读取txt文件实例

    万次阅读 多人点赞 2018-06-07 16:07:49
    本文主要总结用C语言来读txt文本的内容,具体的步骤如下所述。1.1建个.c源文件,赋值如下代码。#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;#define MAX...
  • 梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是【!feof(fp)】的错!!!while(!feof(fp)){fgets(buffer,256,fp);j++;}像这样的代码,是很多C语言学者经常犯的错误!!feof()这个函数是用来判断...
  • //读取一行,并定位到下一行 CurrentIndex++; printf("这里显示读取所有前面行StrLine----->%s\n", StrLine); //输出 } fclose(fp); free(ar); // printf("按任意键继续"); // getchar(); // getchar(); return NULL...
  • c语言逐行读取txt文件数据

    千次阅读 2021-05-19 12:47:10
    我写的是linux下的程序,一个文件叫MYFILE里面是一行一行的写内容的,我... 3 头文件: stdio.h 4 功能: 从文件结构体指针stream中读取数据,每次读取一行读取的数据保存在buf指向的字符数组中。C语言逐行读取txt...
  • 下面的程序将会读取文本文件中的每一行数据,并统计该行的字符数目和单词数目;程序最后,会输出总共读取的行数。该程序构建完成后需要在命令行工具(cmd.exe)中运行,将文件名作为命令行参数传递。该程序涉及到main...
  • 02功能之读写文件流操作(C语言实现读取文件指定一行) 1 C语言读取文件指定一行 // 读取文件指定一行 int ReadLine1(const char *fileName, char outBuf[], int n){ int whichLine = n; //指定要读取哪一行 int ...
  • C语言读取txt文件存入数组&路径的写法-简单应用 1.创建txt文件 2.代码 程序 #include “stdafx.h” //代码 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #define N 3 int main...
  • C语言如何读取txt文件里边的数据

    千次阅读 2021-09-01 17:19:29
    fscanf() 和 fprintf() 函数与前面使用的 scanf() 和 printf() 功能相似,都是格式化读写函数,两者的区别在于 fscanf() 和 fprintf() 的读写对象不是键盘和显示器,而是磁盘文件。 int fscanf ( FILE *fp, char * ...
  • 读取一txt文件,首先要使用文件打开函数fopen()。fopen函数用来打开文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名...
  • C语言读取TXT文件,忽略文件空格,把内容写入数组中应该怎么实现?#include#include#defineSIZE_view50structview_info{intid;charname[20];intcode;charshortname[20];charLName[100];}views[SIZE_view];voidread()...
  • 之前做的个项目需要读取一文件中的数据,文件中的数据类型确定,大小不确定,每次读取文件要计算出文件大小并传送给下位机。查了一下文件系统的函数,使用fscanf和feof就可以搞定这个小程序。 feof 函数原型:...
  • 原程序如下://从键盘输入2个学生的信息,并用这些信息建立个名为student.dat的磁盘文件,然后再从文件读出信息并显示在屏幕上#include#define SIZE2structstudent{charname[10];int age;int score;char addr[30];...
  • C语言TXT文件读写数据

    千次阅读 2021-04-05 14:57:16
    通过个简单的题目介绍C语言txt文件读取和写入

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,016
精华内容 39,606
关键字:

c语言读取txt文件某一行