c语言读取txt文档并将内容存放到表里

如题所述

一、大概了解

c语言文件的操作分  读 和 写,读指的是:将文件内的信息写入到程序,可以理解为

硬盘信息->内存信息 的转化方式

而写指的是:将程序中的信息写入到文件,如txt文件。是一种

内存信息->硬盘信息 的转化方式

对于你的问题,则是 读 的方式,


二、具体使用方法

在C语言中,读文件的需要用到文件类型  FILE;

通常的使用方式为: FILE *fp;定义一个文件指针;

用指针打开文件的函数为:fp = fopen("mm.txt","w"));w可以是r,对应两种使用方式:w(write),r(read)

如果是将信息写入文件,则是w。

若是将文件信息写入程序,则是r。

在r的方式时,即读文件的方式时,若打开的文件不存在,则会打开失败。

在w的方式时。即在写进文件的,比如你讲信息写入“cc.mm”这么一个文件里时,程序发现并没“cc.mm”那么一个文件,则会自动创建一个新文件 命名为“cc.mm”并将信息写入其中。注意!后缀名 .xx、.tet、.什么都无所谓,都默认按txt的方式写入。


文件的读取函数为:fwrite(p, sizeof(XX), 1, fp); 即将文件内的信息,按XX大小的内存写入指针P当中。通过函数调用之后,fp即文件指针自动后移。

文件写入的函数为:fprintf(fp,"%x",p );即将p指针里的信息,按照%x的格式写入文件中。


在最后一定要记得使用fclose(fp)!!!!关闭文件指针

的时候我给你一段代码加深理解

#include <string.h>
#include <windows.h>
#define NEW (TX *)malloc(sizeof(TX))
typedef struct tongxunlu       //定义的一个通讯录的结构体
{
    char number[10];          //号码
    char name[20];            //姓名
    int old;                    //年龄
    char address[20];        //地址
    char phone[12];        //电话
    struct tongxunlu *next;//链表
}TX;
int main ()
{
    FILE *fp;                                      // 文件指针fp
    TX  *p;
    int i,n;                                       // i,n控制循环
    if((fp = fopen("学生信息.txt","w")) == NULL )  // 打开文件
    {
        printf("  人品 不够!!启动失败!!!\n");
        exit(0);
    }
    printf("输入人数:");                          // 键盘输入人数n
    scanf("%d",&n);
    fprintf(fp,"%d",n);                            // 将人数n写入文件
    fprintf(fp,"\n");
    p = NEW;                                       // 开辟一个新内存,并让指针p指向它
    printf(" 输入档案号、姓名、年龄、籍贯、联系电话\n");
    for(i = 0; n > i ; i++)                        // 反复用同一个节点进行n次循环
    {
        scanf("%s",&p -> number);                  // 键盘将数据写入该节点
        scanf("%s",&p -> name);
        scanf("%d",&p -> old);
        scanf("%s",&p -> address);
        scanf("%s",&p -> phone);
        fprintf(fp,"%s ",p -> number);             // 将该节点内的数据写入文件
        fprintf(fp,"%s ",p -> name);
        fprintf(fp,"%d ",p -> old);
        fprintf(fp,"%s ",p -> address);
        fprintf(fp,"%s ",p -> phone);
        fprintf(fp,"\n");
    }
    free(p);                                       // 释放p内存
    fclose(fp);                                    // 关闭文件
    printf("\n\n数据输入完成\n");
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-14
1.fopen函数打开需要读取的文本,获取该文件的文件描述符
2.使用fscan()函数对文件进行读取。
3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置
例如
#include "stdio.h"
#define M 300
#define N 50

void main()
{
int i,j;
float a[M][N]={0};
FILE *fp;
if((fp=fopen("test.txt","rt"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
fscanf(fp,"%f",&a[i][j]);
fscanf(fp,"\n");
}
fclose(fp);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%g ",a[i][j]);
printf("\n");
}
}本回答被网友采纳
第2个回答  2016-10-17
供大家参考:
1)
 #include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 200
char *change[SIZE];
int num = 0;
void fun(char *p) 
{
    char *q; 
    while(*p == '[') {
        change[num++] = ++p;
        while(*p++!=']');
        *(p-1) = '\0';
    }   
}
int main(void)
{
    int fd,ret = 0;
    int i;
    char buf[SIZE];
    fd = open("./abc.txt",O_RDWR);
    if(ret $amp;         perror("open fail");
        exit(1);
    }   
        ret = read(fd , buf , sizeof(buf));
    printf("%s\n",buf);
    fun(buf);
        
    for(i = 0; i $amp;         printf("%s\n",change[i]);
    return 0;
}

2)

用fscanf的正则表达就可以了
  #include <stdio.h>
int main(int argc, char* argv[])
{
FILE *fp1;
int i;
char other[20];
char a[5][20] = {0};
if((fp1 = fopen("abc.txt","r")) == NULL)
{
printf("open file error\n");
return -1;
}
for (i=0; i<5; i++)
{
fscanf(fp1, "%[^0-9a-zA-Z]s", &other);
if (fscanf(fp1, "%[0-9a-zA-Z]s", a[i]) == EOF )
{
break;
}
}
for (; i>0; i--)
{
printf("%d = %s\n", i-1, a[i-1]);
}
return 0;
}
输出
1 = bbbbb
0 = aaaaa

第3个回答  2016-06-20
1.fopen函数打开需要读取的文本,获取该文件的文件描述符
2.使用fscan()函数对文件进行读取。
3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置
例如
#include "stdio.h"
#define M 300
#define N 50

void main()
{
int i,j;
float a[M][N]={0};
FILE *fp;
if((fp=fopen("test.txt","rt"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
fscanf(fp,"%f",&a[i][j]);
fscanf(fp,"\n");
}
fclose(fp);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%g ",a[i][j]);
printf("\n");
}
}
第4个回答  2016-07-12
给你写一小段简单代码吧

int main (void) {
FILE *fp = fopen("file.txt","w"); // 打开一个文件 以写入的方式打开
char arr[10] = "hello";
fseek (arr, 1,sizeof (arr),fp); // 向文件写入一个数据块
fclose (fp) // 关闭文件
}
记得采纳呀!!

C\/C++如何读取TXT文件的行数和把TXT文件的内容存到数组中
C语言读取TXT文件的行数并把把TXT文件的内容存到数组中,需要根据每行的内容(字符,数字,字符串)选取fgets、fscanf或者fgets。这里假设每行是一个字符串,每行不超过127个字符(用数组存字符串,最后一位存'\\0'),选取fgets进行读取。示例代码如下:include <stdio.h>#include <stdlib.h>int main...

如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?_百度知 ...
1.fopen函数打开需要读取的文本,获取该文件的文件描述符 2.使用fscan()函数对文件进行读取。3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置 例如 include "stdio.h"#define M 300#define N 50void main(){ int i,j; float a[M][N]={0}; FILE *fp; if((fp=fop...

用C语言编写“读取一个给定的文本文件,并将文件的内容显示在屏幕上...
include<stdio.h>#include<string.h>void main(){ FILE *fp; \/\/创建一个文件指针*fp char ch; fp=fopen("D:\/data.txt","r"); \/\/以只读方式打开D:\\data.txt文件 if(fp==NULL) printf("can not open!\\n"); \/\/如果fp指针指向为空,即文件为空,则输出can not open else{...

怎么用C++从一个txt里面读取数据然后存放到链表中进行各种操作 最后...
fprintf(pf, "%s %c %s\\n", tail->name, tail->sex, tail->birth);tail = tail->next;} fclose(pf);return 0;}

C语言逐行读取txt中的数据,并保存到数组中
include <stdio.h>int main(void) { FILE *fin = fopen("file.txt", "r"); \/*假设文件名为file.txt*\/ int a[100], i; for (i = 0; i < 100; i++) { fscanf(fin, "%d", &a[i]); } fclose(fin); \/*此时已经读取完毕,可以进行接下来的处理了*\/ ...

c语言 读取txt文件中的数字,然后运算,保存。
被读过来之后,会存在String里边,String说是字符串,实际上就是字符型组成的数组。你要对字符进行判断,然后转存到INT里边,不给出具体算法了,简单说一下思路。在ASCII表里,数字的表读是连续的,你可以编一个函数,对String里的字符进行判断,碰到数字之后按位数乘它的维权,相加存在INT里。当然这个...

C语言如何实现对txt文件的读取和写入
1、使用VS新建空工程,直接点击确定,如下所示。2、新建c文件,用于C语言编译器,输入main.c文件,如下所示。3、参考代码:include <stdio.h> int main(){ \/\/下面是写数据,将数字0~9写入到data.txt文件中 FILE *fpWrite=fopen("data.txt","w");if(fpWrite==NULL){ return 0;} for(int...

C语言如何读取TXT文件并存入数组中?
1 以文本方式打开文件。2 循环用fscanf格式化输入数据到数组。3 判断fscanf的返回值,如果显示到达文件结尾,退出输入。4 关闭文件。5 使用数据。二、代码实现。设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔。代码可以写作:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...

如何用C语言读取如下的txt中数据,我只想要x和y列下面的数据,存放在x[i...
你可以用fscanf()来进行读取。fscsnf(pf,"%f%f%f",&x,&y,&z,&u,&v,&w)。pf是文件指针。这样就好了。

C语言如何读取txt文本里面的内容?
C语言可以使用fopen()函数读取txt文本里。示例:include <stdio.h> FILE *stream, *stream2;void main( void ){ int numclosed;\/* Open for read (will fail if file "data" does not exist) *\/ if( (stream = fopen( "data", "r" )) == NULL )printf( "The file 'data' was...

相似回答