1 2 3 4 5 6
| FILE *fp; while(!feof(fp)) { fscanf(fp,"%s%d%lf",a,&b,&c); printf("%s%d%lf",a,b,c) }
|
fscanf
能正确操作的txt文件编码方式为ANSI
,以下编码方式均不能使函数正常执行:UTF-8,Unicode,Unicode big endian
这里假如说txt文本内的内容为(对应上面三个数据来写):
这里数据与数据之间需要以制表符/或者空格分开即可,数据之间就像scanf()
函数一样,若以逗号分隔数据,则scanf
中也需要加入逗号,例如scanf("%d,%d",a,b);
再输入数据时就要输入1,5才能正确输入
但这里尝试fscanf()
函数之后并未能出现同样的效果,以后解决了再更新
上菜展示一下效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <stdio.h> #include <stdlib.h>
int main() { int num; char name[20]; double height; FILE *fp; fp = fopen("d:\\1.txt", "r+"); if (fp == NULL) { printf("Cannot open the file!\n"); exit(0); } printf("学号\t姓名\t身高\n");
while (!feof(fp)) { fscanf(fp, "%d%s%lf", &num, name, &height); printf("%d\t%s\t%g", num, name, height);
} printf("\n"); fclose(fp); return 0; }
|