C++中如何在txt文档中读取 数字 并 输给 数组?
//test.txt
序号 压力 位移
1 2.12 1.23
2 3.43 2.32
3 4.52 5.22
请问:
首先我需要把这个 txt 文档打开,例如用CFile类
如何把上述txt文档中的
序号一栏输入数组 num[];
压力一栏输入数组 press[];
!!!假设我不知道有多少组数据
!!!!对了,大神们!!我为了得到数组主要是我后续需要画图!或者有别的解决方法吗? 展开
(3)fscanf() : 从文件中读取数据。
原型:int fscanf(FILE *stream, const char*format, [argument...]);
参数:
FILE *stream :文件指针;
char *format :格式字符串;
[argument...] :输入列表。
功能:从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。
#include <stdio.h>
int main()
{
FILE *fp = NULL;
char str[10];
int n;
fp = fopen("File.txt","r");
fscanf(fp,"%s%d",str,&n);
fclose(fp);
printf("%s\n%d\n",str,n);
return 0;
}
注意:执行上述代码的时候需要先在目录下面建立File.txt文件,并在里面输入数据。如输入:"QING 2014" fscanf()读取时以空格和换行区分开的。
参考文章:百度百科,fscanf(),http://baike.baidu.com/view/656694.htm
(4)fprintf() :往文件中写数据。
原型:int fprintf(FILE *stream, const char *format, [argument]);
参数:同上。
功能:fprintf是C/C++中的一个格式化写—库函数;其作用是格式化输出到一个流/文件中;
#include <stdio.h>
int main()
{
FILE *fp = NULL;
char str[10] = "QING";
int n = 2014;
fp = fopen("File.txt","w");
fprintf(fp,"%s %d",str,n);//最好%s %d中间加个空格,方便以后读取
fclose(fp);
return 0;
}
参考文章:百度百科,fprintf(),http://baike.baidu.com/view/656682.htm
我需要用C++编写面向对象的软件啊。
其实不也是互通的吗~C语言不是也可以在C++中用吗,如果C语言更方便的话那麻烦你啦
#include <stdio.h>
//MAX_LINE表示最大文件行数,你根据情况自己设定!
#define MAX_LINE 100
int num[MAX_LINE];
double press[MAX_LINE];
int file_deal( char *file )
{
FILE *fp ;
char str[1024];
int i ;
fp=fopen(file, "r" );
if ( fp == NULL )
{
printf("open file:%s error\n", file );
return -1;
}
fgets( str, sizeof(str), fp ); //skip first line
for( i=0;i<MAX_LINE;i++ )
{
if ( fgets( str, sizeof(str), fp )==NULL )
break ;
sscanf( str, "%d %lf", &num[i], &press[i] );
}
fclose(fp);
return i;
}
int main()
{
int line ;
int i;
//你可以在你的C++代码中,按此处调用file_deal函数,以实现数据获取
line=file_deal( "test.txt" );
printf( "line=%d\n", line );
for( i=0;i<line;i++ )
{
printf( "num:%d %.2lf\n", num[i], press[i] );
}
return 0;
}