c语言怎么从文件中读取数据,在线等,急求。

c语言怎么从文件中读取数据,在线等,急求。,第1张

这里提供一种做法,空格也会被存进字符串里。

如果空格是不需要的,可用DeleteSpace(node[i].a)来删除空格。或者在选取字符时跳过空格即可。

#include <stdio.h>

#define N 100

char a[N][N], b[N][N], c[N][N]

void DeleteSpace(char *p){

    int i, j

    for(i = 0 p[i] != '\0' i++)

        if(p[i] == ' '){

            for(j = i p[j] != '\0' j++)

                p[j] = p[j+1]

            i--

        }

}

int main(){

    char filename[100] = "in.csv"

    FILE *file

    file = fopen(filename, "r")

    if(file == NULL){

        puts("error")

        return 1

    }

    char buf[N]

    int i, j, cnt = 0

    while((fgets(buf, N, file)) != NULL){

//        puts(buf)

        i = j = 0

        for( buf[i] != ',' i++){

            //if(buf[i] == ' ') continue //跳过空格,下面同理

            a[cnt][j++] = buf[i]

        }

        a[cnt][j] = '\0'

        j = 0

        i++

        for( buf[i] != '' i++)

            b[cnt][j++] = buf[i]

        b[cnt][j] = '\0'

        j = 0

        i++

        for( buf[i] != '\n' i++)

            c[cnt][j++] = buf[i]

        c[cnt][j] = '\0'

        cnt++

    }

    for(i = 0 i < cnt i++)

        printf("#%s# #%s# #%s#\n", a[i], b[i], c[i])

    return 0

}

像这种情况,有多种方法,最简单的方法是:

1.用"记事本"创建a.txt文件,保存在一个文件夹中,设保存在d:\之下

2.编写程序,并运行

#include <stdio.h>

int main( )

{

int a[10][4] /*假定不超过10行,每行一定有4个元素*/

int i,j

FILE *fp

/*打开文件*/

fp=fopen("d:\\a.txt","r")  /*假设a.txt在d盘根目录下*/

if(!fp)exit(0)

for(j=0j<4j++) /*假定有j行*/

for(i=0i<4i++)

fscanf(fp,"%d",&a[j][i])  /*读一个数据*/

/* 关闭文件 */

fclose(fp)

/*显示运行结果*/

for(j=0j<4j++) /*假定有j行*/

{for(i=0i<4i++)

printf("%4d",a[j][i])

printf("\n")

}

return 0

}

以上演示了文本文件的读写 *** 作,供你参考.

在读写文件时,文件内部有一个"指针"会悄悄地变化(但你看不到),所以读一个数据后,再读可以得到下一个数据.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6842559.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存