C++中如何在txt文档中读取 数字 并 输给 数组?

例如://test.txt序号压力位移12.121.2323.432.3234.525.22请问:首先我需要把这个txt文档打开,例如用CFile类如何把上述txt文档中... 例如:
//test.txt

序号 压力 位移
1 2.12 1.23
2 3.43 2.32
3 4.52 5.22

请问:
首先我需要把这个 txt 文档打开,例如用CFile类
如何把上述txt文档中的
序号一栏输入数组 num[];
压力一栏输入数组 press[];
!!!假设我不知道有多少组数据
!!!!对了,大神们!!我为了得到数组主要是我后续需要画图!或者有别的解决方法吗?
展开
 我来答
Iinux
2014-08-31 · TA获得超过327个赞
知道答主
回答量:67
采纳率:100%
帮助的人:75.4万
展开全部

(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

kaixingui2012
2014-08-31 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6478万
展开全部
用C语言更简单方便,C++反而麻烦,如果需要C语言的,我可以写给你
追问
我需要用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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式