简单的c语言问题,快来拿分!!!(200分)

F

flycat

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个txt文本文件,格式如下:
8000
1000
1175
1425.25
50
0 43.124582 99.785468 5000 2.35648 2.568745 89547545 0000 0
1 483578945 54.265814 5000 2.35648 2.568745 89547545 0000 0
2 50.124582 91.785468 5000 2.35648 2.568745 89547545 0000 0
......
.....
用c语言如何读取每一行数据,并赋给一个数组a[8]?请给出源码。万分感谢!!!!!
 
strcat(strFileName,"c://rdparam.txt");
FILE* pFile;
pFile = fopen(strFileName,"r");
if (pFile != 0)
{
try
{
fscanf(pFile,"%s",&a[0]);
fscanf(pFile,"%s",&a[1]);
fscanf(pFile,"%s",&a[2]);
fscanf(pFile,"%s",&a[3]);
fscanf(pFile,"%s",&a[4]);
fscanf(pFile,"%s %s %s %s %s %s %s %s %s ",&a[5]);
fscanf(pFile,"%s %s %s %s %s %s %s %s %s ",&a[6]);
fscanf(pFile,"%s %s %s %s %s %s %s %s %s ",&a[7]);
fclose(pFile);
}
catch(CFileException e)
{
fclose(pFile);
}
}
应该是这样吧
 
主要是这个文件内部的数据类型,
可以用循环!
 
main()
{
FILE *p;
char chars[];
char a[8];
p=fopen("e://money.txt","a");
while(1)
{
if(fscanf(p,"%s/n",chars)==EOF)
break;
strcpy(a,chars);
}
fclose(p);
}
 
补充说明:txt文件行数不定,中间空格不定,每行一回车键结束。
 
不行吗?奇怪
 
txt文件行数不定,但你总能读出每个文件的总行数的.
或者循环到文件的未尾
 
char Fn[64];
FILE Fp;
char a[MAX_LINE];
int i = 0;
strcpy(Fn,"c:/test.txt");
if ((Fp = fopen(Fn,"r")) == NULL)
{
printf("open file fail/n");
return;
}
while ((!feof(Fp) || (i >= MAX_LINE))
{
if (fgets(a[i ++],256,Fp) == NULL)
{
printf("read file fail/n");
fclose(Fp);
return;
}
}
fclose(Fp);
 
补充说明:txt文件行数不定,最多260行。中间空格不定,每行一回车键结束。
难道就没有高手指点。
 
我不明白这有什么难的,挺简单的事
但你的题目似乎没有说清楚
8000
1000
1175
1425.25
50
0 43.124582 99.785468 5000 2.35648 2.568745 89547545 0000 0
1 483578945 54.265814 5000 2.35648 2.568745 89547545 0000 0
2 50.124582 91.785468 5000 2.35648 2.568745 89547545 0000 0
“赋给一个数组a[8]”,那第一行只有一个数,a[1]-a[7]是否就不用赋了?
这几行
0 43.124582 99.785468 5000 2.35648 2.568745 89547545 0000 0
...
有9个数,最后一个数是否要舍弃?
 
上面已经写的很清楚了,是个人问题吧??!!!!!!!!!!!!!!!!!!!!
 
各位大侠,程序你们有没有测过?谁给出完整答案分就全给谁!!!!!!!!
从文件中逐行读出数据,副给变量,并输出到屏幕。
 
你的数据要按什么方式读取,是字符串,还是整数,还是浮点数?????
前面五行是不是





说明这一行的数据类型
0 43.124582 99.785468 5000 2.35648 2.568745 89547545 0000 0
还有 0000 是什么?一个0是不是整数
这么大的是什么:483578945
如果你只要按行读出、输出好办,作为行来读。
 
每一行都是一组数据,
int float float float float float float 0x int
0 43.124582 99.785468 5000.89 2.35648 2.568745 450.6589 0000 0
每个数读如变量中,输出到屏幕。
 
FILE *Fp;
char RdBuf[256];
long aa[9];
//可以自己定义其它的类型变量。
long Cnt = 0;
if ((Fp = fopen("c://test.txt","r")) == NULL)
{
printf("open file fail/n");
return;
}
while ((!feof(Fp)) &&
(Cnt < 260))
{
if (fgets(RdBuf,256,Fp) == NULL)
{
printf("read error/n");
fclose(Fp);
break;
}
Cnt ++;
if (Cnt < 6)
{
printf("%s/n",RdBuf);
}
else
{
if (sscanf(RdBuf,"%d%f%f%f%f%f%f%f%x%d",&amp;aa[0],&amp;aa[1],&amp;aa[2],&amp;aa[3],&amp;aa[4],&amp;aa[5],&amp;aa[6],&amp;aa[7],&amp;aa[8]) != 9)
{
printf("get error/n");
continue;
}
for (int i = 0;i < 9;i ++)
{
printf("%f/n",aa);
}
}
}
fclose(Fp);
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
562
import
I
I
回复
0
查看
486
import
I
顶部