如何将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列的数组中。
请详细解答。
谢谢。
[解决办法]
#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};
[解决办法]
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;
[解决办法]
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;}
[解决办法]
//输入若干个实数对直至按下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>