69,373
社区成员
发帖
与我相关
我的任务
分享
INT ReadDataToArrayFromFile(VOID)
{
FILE *fp;
//float readValue[TEST_ARRAY_LENGTH]={0};
float *pfMalloc=NULL,*pfTemp=NULL,*newRealloc;
if ((fp=fopen("shuzi.txt","r")) == NULL)
{
printf("打开文件: shuzi.txt 失败\n\n");
return (SYS_ERR);
}
//测试 申请内存方式
pfMalloc=(float *)malloc(sizeof(float) * TEST_ARRAY_LENGTH);
if (NULL == pfMalloc)
{
printf("\nmalloc fail\n");
fclose(fp);
return (SYS_ERR);
}
int readNum=0,circle=1,sum;
sum=circle*TEST_ARRAY_LENGTH;
while (!feof(fp))
{
if (readNum == sum)
{
circle++;
pfTemp=pfMalloc;
newRealloc=(float *)realloc((float *)pfMalloc,sizeof(float) * TEST_ARRAY_LENGTH*circle);
if (NULL == newRealloc)
{
printf("\nrealloc fail\n");
fclose(fp);
SAFE_FREE(pfTemp);
return (SYS_ERR);
}
pfMalloc=newRealloc;
sum=circle*TEST_ARRAY_LENGTH;
}
if (readNum < sum)
{
fscanf(fp,"%f",&pfMalloc[readNum]);
readNum++;
}
}
// printf("\n读取的总数字为: %d\n\n",readNum);
// for(int i=0;i<readNum;i++)
// {
// printf("%d = %6.3f\n",i,pfMalloc[i]);
// }
SAFE_FREE(pfMalloc);
SAFE_FCLOSE(fp);
return (SYS_OK);
}
#include <stdio.h>
#include <stdlib.h>
FILE *fp1;
int num;
int i;
int main() {
fp1=fopen("input.txt","r");
if (NULL==fp1) {
printf("Can not open file input.txt!\n");
return 1;
}
if (1!=fscanf(fp1,"%d",&num)) {
fclose(fp1);
printf("Can not read num!\n");
return 2;
}
float *a=(float *)malloc(sizeof(float)*num);
if (NULL==a) {
fclose(fp1);
printf("Can not malloc!\n");
return 3;
}
for (i=0;i<num;i++) {
if (1!=fscanf(fp1,"%f",&a[i])) {
fclose(fp1);
printf("Can not read a[%d]!\n",i);
if (i>0) printf("a[%d-1]==%g\n",i-1,a[i-1]);
return 3;
}
}
fclose(fp1);
printf("%d data read:\n",num);
for (i=0;i<num;i++) {
printf("a[%d]==%g\n",i,a[i]);
}
free(a);
return 0;
}
int i =0;
ch = fgetc(fp1);
while(!feof(fp1))
{
ch = fgetc(fp1);
a[i++] = ch;
}
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
int main(void)
{
int malloc_num = 0;
int i = 0;
FILE *fp = NULL;
if((fp = fopen("./aa.txt", "r")) == NULL)
{
fprintf(stderr, "fopen ./aa.txt failed: %s\n", strerror(errno));
exit(0);
}
fscanf(fp, "%d", &malloc_num);
float *ft = (float *)malloc(malloc_num);
for(i = 0; i < malloc_num; i++)
fscanf(fp, "%f", &ft[i]);
for(i = 0; i < malloc_num; i++)
printf("ft[%d] = %f\n", i, ft[i]);
return 0;
}
,fscanf遇到空格和换行时结束,注意空格时也结束
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num = 0;
float a[5]={0};
FILE* fp1 = fopen("d:\\tr\\a.txt","r");
if(fp1==NULL)
return 1;
fscanf(fp1,"%d",&num);
for(int i=0;i<5;++i)
fscanf(fp1,"%f",&a[i]);
fclose(fp1);
return 0;
}
return 0;前的断点