首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么将txt文件中的数据保存在二维数组里

2012-03-14 
如何将txt文件中的数据保存在二维数组里?txt文件中有一组随机生成的float型数据,是(x,y)形式的。例如:2行,3

如何将txt文件中的数据保存在二维数组里?
txt文件中有一组随机生成的float型数据,是(x,y)形式的。
例如:2行,3列:
(12.3,33.4) (23.4,15.6) (34.2,25.3)  
(2.4,3.2 ) (4.6,9.4) (9.3,4.8)

现要将它们保存在一个二维数组里,该如何用c程序实现?(x,y)保存在同一行里,即上例中的数据保存在6行2列的数组中。
请详细解答。
谢谢。


[解决办法]

C/C++ code
#include<iostream>int main(){    float a[6][2]={0};    int i=0,j;    FILE *stream;    stream = fopen("fscanf.txt", "r");    if(stream == NULL)        printf( "The file fscanf.out was not opened\n" );    else    {        while(!feof(stream))        {            char s[100] = {0};
[解决办法]
C/C++ code
            bool b = false;            int k = 0;            fscanf(stream, "%s", s);            for (j = 0; s[j] != '\0'; j++)            {                switch(s[j])                {                case ')':                     i++;                    break;                case  '.':                    b = true;                    break;                case ',':                    k = 1;                    b = false;                    break;
[解决办法]
C/C++ code
                default:                    if (s[j] > '0' && s[j] <= '9')                    {                        if (b)                        {                            a[i][k] += (s[j] - '0')/10.0;                        }                        else                        {                            a[i][k] = a[i][k]*10 + s[j] - '0';                        }                    }                    break;                }}}}    return 0;}
[解决办法]
C/C++ code
//输入若干个实数对直至按下Enter时停止输入,并使屏幕上打印出各实数对中两个实数的和。#include <stdio.h>#define MAXD 100#define MAXLEN 1000char buf[MAXLEN];double d[MAXD];int i,n,r;char c;FILE *f;void main() {    fgets(buf,MAXLEN,stdin);    f=fopen("tmp.txt","w");    fputs(buf,f);    fclose(f);    f=fopen("tmp.txt","r");    i=0;    while (1) {        r=fscanf(f,"%lf",&d[i]);        if (1==r) {            i++;            if (i>=MAXD) {                printf("\nUp to %d numbers!\n",MAXD);                break;            }        } else if (0==r) {            fscanf(f,"%c",&c);        } else break;    }    fclose(f);    remove("tmp.txt");    n=i;    for (i=0;i<n/2;i++) {        printf("%.15lg+%.15lg=%.15lg\n",d[i*2],d[i*2+1],d[i*2]+d[i*2+1]);    }}//C:\tmp>f2//1 2 3 4//1+2=3//3+4=7////C:\tmp>f2//(1.1,2.2) (3.3,4.4)//1.1+2.2=3.3//3.3+4.4=7.7////C:\tmp> 

热点排行
Bad Request.