C语言如何读取TXT文件并存入数组中?

C语言如何读取TXT文件并存入数组中?,第1张

一、编程思路。

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

#include <stdio.h>

int main()

{

int v[100]//开一个足够大的数组。

int i = 0, j

FILE *fp//文件指针

fp = fopen("in.txt", "r")//以文本方式打开文件。

if(fp == NULL) //打开文件出错。

return -1

while(fscanf(fp, "%d", &v[i]) != EOF) //读取数据到数组,直到文件结尾(返回EOF)

i++

fclose(fp)//关闭文件

for(j = 0j <ij ++)//循环输出数组元素。

{

printf("%d ", v[j])

}

return 0

}

当文件内容为:

1 35 6 8 9 9

10 123 34

76 54 98

程序输出:

1 35 6 8 9 9 10 123 34 76 54 98

1,文件里的数据是不同类型的,既有字符类型的,也有整型的。

2,遇到这种情况,可以按照字符串类型定义数组。例如,char s[100][4]

3,编写程序时,一个一个字符读取,遇到空格就完成了一个数据读取。遇到换行,就换到下一行。

这道题目的关键是把数据类型当作字符串类型处理。

你看下面的程序中,把文本的内容都按照整型数来读取,那么当然有问题!数组s的声明是错误的!

#include <stdio.h>

int main(int ac, char *pav[])

{

if (ac!=2){

printf("程序名 要读取的文件名\n")

printf("test.exe 1.txt\n")

return 0

}

FILE *fp = fopen(pav[1],"r+")

if(fp == 0)

{

printf("fail to open the file1 !\n")

return 0

}

char buf[256] = {0}

while(!feof(fp))//判断文件是否已结束 

{

fgets(buf,256,fp)

}

printf(buf)

return 0

}


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

原文地址: http://outofmemory.cn/tougao/11749166.html

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

发表评论

登录后才能评论

评论列表(0条)

保存