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
首先要用fopen函数打开这个文件、然后用fread函数对文件中的数据进行读取、例如:
if((fp=fopen("data.txt","a+"))==NULL)
//打开指定文件,判断是否存在
{
printf("指定文件不存在!\n")
return
}
while(!feof(fp))
//如果未遇到文件结束的标志,文件存在
if(fread(&stu[length],sizeof(struct
StuMessage),1,fp)==1)//读取成功则返回读入的数据块个数
length++
//统计当前记录条数
fclose(fp)
//关闭文件
文件中的内容将存储在stu数组中、、
你可以去看下C语言中文件的相关知识、、
在C语言中,字符数组中存放的内容中字符的ASC码。如果在定义过程中没有赋初值,则数组中的元素都为0。如char c[10]
定义了c是一个字符数组共有10个元素c[0]、c[1]……c[9],因为没有赋初值,所以这10个元素的值都是0。
如果定义时赋了初值,或在程序中赋元素的值,则该元素保存对应字符的ASC码值。如:
char c[10]="ABCD"
则元素
a[0]=65//'A'的ASC码是65
a[1]=66//'B'的ASC码是66
a[2]=67//'C'的ASC码是67
a[3]=68//'D'的ASC码是68
在程序中,a[0]='A'和a[0]=65是等价的。
验证:
char a[10]="ABCD"
printf("%d %c\n",a[0],a[0])//输出65 A
printf("%d %c\n",a[3],a[3])//输出68 D
a[3]=65
printf("%d %c\n",a[3],a[3])//输出65 A
printf("%d",a[6])// 输出0 因为没有赋a[6]初值,所以其值为0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)