C++如何读取文本文件,分割字符串,保存到不同数组

iceclouds 2011-10-13 10:57:12
文本文件格式如下:
ab 32123.234234 2132.435345 12
cd 32123.234234 2132.435345 34
dd 32123.234234 2132.435345 44
sdf 32123.234234 2132.435345 44
sdf 32123.234234 2132.435345 12

保存到四个不同的数组,注意数据类型转换
...全文
1654 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
v_table 2011-10-14
  • 打赏
  • 举报
回复
建议用纯API加上自己的算法读取一行,比MFC和C++库函数效率高多了
alpha.5 2011-10-14
  • 打赏
  • 举报
回复
CStdioFile CFile 这两个是 MFC 的,很强大..
yyps 2011-10-14
  • 打赏
  • 举报
回复
CFile file;
file.Open("文件全路径",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
file.Read(**********);
file.Close();

分别读到四个字符串中。。。str1 ,str2 ,str3 ,str4

然后 "ab" = str1.Left(2); "32123.234234" = str1.Left(14).Right(12) .....以此类推。
等都弄好了,在进行类型转换。。


这是比较笨的办法

yayafu 2011-10-13
  • 打赏
  • 举报
回复
CStdioFile file;
file.Open("路径+文件名", CFile::modeRead|CFile::typeText)
file.ReadString() -> 读一行
读进的字符串自己处理了
lgstudyvc 2011-10-13
  • 打赏
  • 举报
回复
strtok吧

char seps[] = "|";
char *token = NULL;
token = strtok(buf,seps);
while(token != NULL)
{
int ntoken = atoi(token);
.....
}
我这是找字符串buf 10|123|152|7896|1023| 的字符串取值,你改一下应该可以
oyljerry 2011-10-13
  • 打赏
  • 举报
回复
fgets一行行读取数据到字符串,然后再根据空格解析字符串,取出每个元素,放到vector
呔妖怪来嘛 2011-10-13
  • 打赏
  • 举报
回复
struct 二进制存取
liuharris 2011-10-13
  • 打赏
  • 举报
回复
使用
CStdioFile sf;
sf.Open -> 打开文本
sf.ReadString -> 读一行
读一行处理一行,解析每行数据的方法很多,若有规律(比如数据间分隔符,数据顺序..),或数据不多,可直接使用CString 的函数做字符处理,之后作类型转换,分类保存到各个数组中
shiyunqiang 2011-10-13
  • 打赏
  • 举报
回复
sscanf
ouyh12345 2011-10-13
  • 打赏
  • 举报
回复
struct
vector
fgets
sscanf
gameslq 2011-10-13
  • 打赏
  • 举报
回复
即考虑分割和类型转换的话,用fscanf

while ( fscanf(fd,"%s%f%f%s",&e.a,&e.b,&e.c,&e.d) != EOF )
fprintf(stdout,"%s-%f-%f-%s\n",e.a,e.b,e.c,e.d);


实现起来直接,以上情况实现不了,改用普通方法 用fgets读
用strtok进行分割处理
hztj2005 2011-10-13
  • 打赏
  • 举报
回复
不错不错,方法很好很多
ndy_w 2011-10-13
  • 打赏
  • 举报
回复
每行的数据个数/类型确定的话,简单fscanf。
while (!feof(fp))
{
fscanf(fp, "%d %f %f %d", &a1[i], &a2[i], &a3[i], &a4[i]);
i++;
}
否则类型不能确定,只能按分隔符分成字符串。可以fgets后处理。
g15896894 2011-10-13
  • 打赏
  • 举报
回复
打开文件一行一行读取,然后解析出来保存到数组。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧