用C语言将txt文件读入后,如何存入不同的数组,并输出在屏幕上

我的txt文件的数据如下:
CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
1 35.00 35.00 0.00 0 .00 230.00 0.00
2 41.00 49.00 10.00 161.00 171.00 10.00
3 35.00 17.00 7.00 50.00 60.00 10.00
4 55.00 45.00 13.00 116.00 126.00 10.00
5 55.00 20.00 19.00 149.00 159.00 10.00
6 15.00 30.00 26.00 34.00 44.00 10.00
7 25.00 30.00 3.00 99.00 109.00 10.00
8 20.00 50.00 5.00 81.00 91.00 10.00

这样的数据有100行我已经将txt文件读进去了,但是存入数组失败,我的源程序如下:
#define N 101
#define M 2
#include<stdio.h>
#include <stdlib.h>
#include<process.h>
main()
{ /*变量定义*/
int i;
int num;
int nDemand[100];
int nTimewindowE[N];
int nTimewindowL[N];
double dCoordinateX[N];
double dCoordinateY[N];
double dDistance[N][N];
double dServicetime[N];
int nRoutes[20][N];
int bFlag[N];
int capacity=200;

FILE *fp;
fp=fopen("R101.txt","r");
if(fp==NULL)
{
printf("file open erro!\n");
exit(0);
}
while(!feof(fp))
{
fscanf(fp,"%d%f%f%d%d%d%f",&num,dCoordinateX,dCoordinateY,nDemand,nTimewindowE,nTimewindowL,dServicetime);
fprintf(stdout,"%d%f%f%d%d%d%f",num,dCoordinateX,dCoordinateY,nDemand,nTimewindowE,nTimewindowL,dServicetime);
}
fclose(fp);
}

#include<stdio.h>
#include <stdlib.h>
#include<process.h>
#include<Windows.h>
#define N 101
#define M 2
int main()
{   /*变量定义*/
 int i;
 int num;
 double nDemand;
 double nTimewindowE;
 double nTimewindowL;
 double dCoordinateX;
 double dCoordinateY;
 double dDistance[N][N];
 double dServicetime;
 int nRoutes[20][N];
 int bFlag[N];
 int capacity=200;
 FILE *fp;
 fp=fopen("R101.txt","r");
 if(fp==NULL) 
 {  printf("file open erro!\n");
       //  exit(0); 
 }
 while((!feof(fp)))
 {  
  fscanf(fp,"%d %lf %lf %lf %lf %lf %lf",&num,&dCoordinateX,&dCoordinateY,&nDemand,&nTimewindowE,&nTimewindowL,&dServicetime);
  fprintf(stdout,"%d,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f\n",num,dCoordinateX,dCoordinateY,nDemand,nTimewindowE,nTimewindowL,dServicetime);
 }
 fclose(fp);


 system("pause");
 return 0;
}

你那些读取都乱用的%d,%f,%lf要分清好不。全是数字要用什么数组呢

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-23
问题很多。首先fscanf里边的变量除了num其它的你都写的是数组名。其次,文件中的数据之间的空格数不统一,而你在fscanf里的格式控制符之间都没有空格,造成读取数据的时候混乱。再次,你有三个%d是连续读整型,而你的数据中对应的都是浮点型。

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文件中读取如下格式的数据并存储与数组中?
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语言如何实现对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语言中怎么打开一个文件然后写入一些数据,然后再把数据取出来,最好有...
include<stdio.h># include<stdlib.h>int main(){char word[1000];FILE *fp;if((fp=fopen("words.txt","r+"))==NULL){fprintf(stdout,"Can't open \\"words\\" file\\n");exit(1);}while(fgets(word,100,stdin)!=NULL&&(word[0]!='\\n')){fputs(word,fp);}while(fscanf(fp,"%s...

c语言将文件内容读入数组中
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...

c语言读取txt文档并将内容存放到表里
在C语言中,读文件的需要用到文件类型 FILE;通常的使用方式为: FILE *fp;定义一个文件指针;用指针打开文件的函数为:fp = fopen("mm.txt","w"));w可以是r,对应两种使用方式:w(write),r(read)如果是将信息写入文件,则是w。若是将文件信息写入程序,则是r。在r的方式时,即读...

C语言从txt文件中读取汉字并且存入数组,再由数组一个字一个字输出。
include <stdlib.h> int main(void){ FILE*f = fopen("11.txt","r");if (f == NULL){ printf("失败");system("pause");exit(-1);} char ch[30],c; \/\/ ch的长度一定要足够 int i=0;while(!(feof(f))){ c=fgetc(f);ch[i] = c;i++;} for(i = 0;ch[i] != ...

c语言 如何读取txt内容到数组
int main(){ FILE *fp;if((fp=fopen("D:\\\\123.txt","r"))==NULL)\/\/判断文件是否打开成功 {\/\/读取D盘下,名为123的文本文件 printf("文件打开失败\\n");exit(0);} else printf("文件打开成功\\n");double a[N];for(int i=0;i<5;i++)\/\/读取五个浮点型数据 fscanf(fp,"%lf,"...

C语言中从.txt文件中按行读取字符串至数组中,怎么写?
可以设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔写。代码如下:include int main(){ int v[100];\/\/开一个足够大的数组。int i = 0, j;FILE *fp;\/\/文件指针 fp = fopen("in.txt", "r");\/\/以文本方式打开文件。if(fp == NULL) \/\/打开文件出错。return -1;while...

如何用C语言读取txt文件中的数据到程序的数组中?
int i;fin = fopen("abc.txt","r"); \/\/ 打开文件,按读的方式打开 for (i=0;i<50;i++)fscanf(fin,"%d %d", &a[i][0], &a[i][1]); \/\/ 循环读 fclose(fin); \/\/关闭文件 for (i=0;i<50;i++) printf("%d %d\\n",a[i][0],a[i][1]); \/\/输出来看看 ...

相似回答