在c ++中读取文件 [英] Reading From Files in c++

查看:270
本文介绍了在c ++中读取文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我从c转移到c ++,想知道从文件中读取数据的最佳方式是什么?
来自c ++。有什么想法吗? fscanf()是可能的但是相当痛苦!


问候


Michael

Hi,
I moved to c++ from c, and wanted to know what the best way to read data
from files is in c++. Any thoughts? fscanf() is possible but fairly painful!

Regards

Michael

推荐答案

所以例如在文件中读取...


没有多少
fscanf(fp,"%s",variableAddr) ;


看起来很乱!


TIA


迈克尔。


//文件开始:


* 3DSMAX_ASCIIEXPORT 200

* COMMENT" AsciiExport Version 2.00 - Tue Apr 06 19:00 :45 2004"

* SCENE {

* SCENE_FILENAME" City_vertex_paint.max"

* SCENE_FIRSTFRAME 0

* SCENE_LASTFRAME 500

* SCENE_FRAMESPEED 30

* SCENE_TICKSPERFRAME 160

* SCENE_BACKGROUND_STATIC 0.0000 0.0000 0.0000

* SCENE_AMBIENT_STATIC 0.9804 0.9804 0.9804

}

* MATERIAL_LIST {

* MATERIAL_COUNT 13

* MATERIAL 0 {

* MATERIAL_NAME" SF Building"

* MATERIAL_CLASS多个/子对象

* MATERIAL_AMBIENT 0.1000 0.1000 0.1000

* MATERIAL_DIFFUSE 0.0392 0.0392 0.0392

* MATERIAL_SPECULAR 0.9000 0.9000 0.9000

* MATERIAL_SHINE 0.2500

* MATERIAL_SHINESTRENGTH 0.0500

* MATERIAL_TRANSPARENCY 0.0000

* MATERIAL_WIRESIZE 1.0000

* NUMSUBMTLS 6

* SUBMATERIAL 0 {

* MATERIAL_NAME" Top"

* MATERIAL_CLASS" Standard"

* MATERIAL_AMBIENT 0.1000 0.1000 0.1000

* MATERIAL_DIFFUSE 0.0392 0.0392 0.0392

* MATERIAL_SPECULAR 0.9000 0.9000 0.9000

* MATERIAL_SHINE 0.2500

* MATERIAL_SHINESTRENGTH 0.0500

* MATERIAL_TRANSPARENCY 0.0000

* MATERIAL_WIRESIZE 1.0000

* MATERIAL_SHADING Blinn

* MATERIAL_XP_FALLOFF 0.0000

so for example reading in the file...

without many
fscanf(fp,"%s",variableAddr);

it just looks very messy!

TIA

Michael.

//File Start:

*3DSMAX_ASCIIEXPORT 200
*COMMENT "AsciiExport Version 2.00 - Tue Apr 06 19:00:45 2004"
*SCENE {
*SCENE_FILENAME "City_vertex_paint.max"
*SCENE_FIRSTFRAME 0
*SCENE_LASTFRAME 500
*SCENE_FRAMESPEED 30
*SCENE_TICKSPERFRAME 160
*SCENE_BACKGROUND_STATIC 0.0000 0.0000 0.0000
*SCENE_AMBIENT_STATIC 0.9804 0.9804 0.9804
}
*MATERIAL_LIST {
*MATERIAL_COUNT 13
*MATERIAL 0 {
*MATERIAL_NAME "SF Building"
*MATERIAL_CLASS "Multi/Sub-Object"
*MATERIAL_AMBIENT 0.1000 0.1000 0.1000
*MATERIAL_DIFFUSE 0.0392 0.0392 0.0392
*MATERIAL_SPECULAR 0.9000 0.9000 0.9000
*MATERIAL_SHINE 0.2500
*MATERIAL_SHINESTRENGTH 0.0500
*MATERIAL_TRANSPARENCY 0.0000
*MATERIAL_WIRESIZE 1.0000
*NUMSUBMTLS 6
*SUBMATERIAL 0 {
*MATERIAL_NAME "Top"
*MATERIAL_CLASS "Standard"
*MATERIAL_AMBIENT 0.1000 0.1000 0.1000
*MATERIAL_DIFFUSE 0.0392 0.0392 0.0392
*MATERIAL_SPECULAR 0.9000 0.9000 0.9000
*MATERIAL_SHINE 0.2500
*MATERIAL_SHINESTRENGTH 0.0500
*MATERIAL_TRANSPARENCY 0.0000
*MATERIAL_WIRESIZE 1.0000
*MATERIAL_SHADING Blinn
*MATERIAL_XP_FALLOFF 0.0000


所以例如在文件中阅读...


没有多少

fsca nf(fp,"%s",variableAddr);


看起来很乱!


TIA


迈克尔。


//文件开始:


* 3DSMAX_ASCIIEXPORT 200

*评论AsciiExport Version 2.00 - Tue Apr 06 19:00:45 2004

* SCENE {

* SCENE_FILENAME" City_vertex_paint.max"

* SCENE_FIRSTFRAME 0

* SCENE_LASTFRAME 500

* SCENE_FRAMESPEED 30

* SCENE_TICKSPERFRAME 160

* SCENE_BACKGROUND_STATIC 0.0000 0.0000 0.0000

* SCENE_AMBIENT_STATIC 0.9804 0.9804 0.9804

}

* MATERIAL_LIST {

* MATERIAL_COUNT 13

* MATERIAL 0 {

* MATERIAL_NAME" SF Building"

* MATERIAL_CLASS" Multi / Sub-Object"

* MATERIAL_AMBIENT 0.1000 0.1000 0.1000

* MATERIAL_DIFFUSE 0.0392 0.0392 0.0392

* MATERIAL_SPECULAR 0.9000 0.9000 0.9000

* MATERIAL_SHINE 0.2500

* MATERIAL_SHINESTRENGTH 0.0500

* MATERIAL_TRANSPARENCY 0.0000

* MATERIAL_WIRESIZE 1.0000

* NUMSUBMTLS 6

* SUBMATERIAL 0 {

* MATERIAL_NAME" Top"

* MATERIAL_CLASS" Standard"

* MATERIAL_AMBIENT 0.1000 0.1000 0.1000

* MATERIAL_DIFFUSE 0.0392 0.0392 0.0392

* MATERIAL_SPECULAR 0.9000 0.9000 0.9000

* MATERIAL_SHINE 0.2500

* MATERIAL_SHINESTRENGTH 0.0500

* MATERIAL_TRANSPARENCY 0.0000

* MATERIAL_WIRESIZE 1.0000

* MATERIAL_SHADING Blinn

* MATERIAL_XP_FALLOFF 0.0000

so for example reading in the file...

without many
fscanf(fp,"%s",variableAddr);

it just looks very messy!

TIA

Michael.

//File Start:

*3DSMAX_ASCIIEXPORT 200
*COMMENT "AsciiExport Version 2.00 - Tue Apr 06 19:00:45 2004"
*SCENE {
*SCENE_FILENAME "City_vertex_paint.max"
*SCENE_FIRSTFRAME 0
*SCENE_LASTFRAME 500
*SCENE_FRAMESPEED 30
*SCENE_TICKSPERFRAME 160
*SCENE_BACKGROUND_STATIC 0.0000 0.0000 0.0000
*SCENE_AMBIENT_STATIC 0.9804 0.9804 0.9804
}
*MATERIAL_LIST {
*MATERIAL_COUNT 13
*MATERIAL 0 {
*MATERIAL_NAME "SF Building"
*MATERIAL_CLASS "Multi/Sub-Object"
*MATERIAL_AMBIENT 0.1000 0.1000 0.1000
*MATERIAL_DIFFUSE 0.0392 0.0392 0.0392
*MATERIAL_SPECULAR 0.9000 0.9000 0.9000
*MATERIAL_SHINE 0.2500
*MATERIAL_SHINESTRENGTH 0.0500
*MATERIAL_TRANSPARENCY 0.0000
*MATERIAL_WIRESIZE 1.0000
*NUMSUBMTLS 6
*SUBMATERIAL 0 {
*MATERIAL_NAME "Top"
*MATERIAL_CLASS "Standard"
*MATERIAL_AMBIENT 0.1000 0.1000 0.1000
*MATERIAL_DIFFUSE 0.0392 0.0392 0.0392
*MATERIAL_SPECULAR 0.9000 0.9000 0.9000
*MATERIAL_SHINE 0.2500
*MATERIAL_SHINESTRENGTH 0.0500
*MATERIAL_TRANSPARENCY 0.0000
*MATERIAL_WIRESIZE 1.0000
*MATERIAL_SHADING Blinn
*MATERIAL_XP_FALLOFF 0.0000


Michael写道:
Michael wrote:
所以例如在文件中阅读...

没有很多
fscanf(fp,"%s" ,变量Addr);

它看起来非常凌乱!

TIA

迈克尔。

< snip>
so for example reading in the file...

without many
fscanf(fp,"%s",variableAddr);

it just looks very messy!

TIA

Michael.

<snip>




查看iostreams,especi ally std :: ifstream。

它们可以像std :: cout一样使用。


- Pete



Check out iostreams, especially std::ifstream.
They can be used just like std::cout.

- Pete

这篇关于在c ++中读取文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆