C++读取文件流问题

smiles_ 2012-08-08 04:00:38
想做下面的事情
输入文件为:
12 *@ 87 *@ 94 *@ 8
34 *@ 76 *@ 46 *@ 9
输出为:
12
87
94
8
34
76
46
9
即:以指定分隔符(如*@)分隔读取文件内容。
请问有什么方法吗?

输入文件可以先处理为
12 *@ 87 *@ 94 *@ 8 *@
34 *@ 76 *@ 46 *@ 9 *@

...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
RLib 2012-08-08
  • 打赏
  • 举报
回复
StringArray *parray = IO::File::ReadText("xxxx.xxx").Split(T(" *@"));
blldw 2012-08-08
  • 打赏
  • 举报
回复
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>

int main(int, char**)
{
std::ifstream infile("1.txt"); // 打开文件
if (!infile) {
return -1;
}

std::vector<int> vis;

std::string line;
while (std::getline(infile, line)) { // 读取一行,处理一行
std::istringstream is(line); // 将一行数据以输入流方式处理
while (!is.eof() && is) { // 如果以行数据没处理完毕,并且流对象正常
int tmp;
std::string stmp;
is >> tmp; // 提取整型数值
if (is) { // 如果操作成功
vis.push_back(tmp); // 将提取的数值存进vector
is >> stmp; // 提取*@,并忽略
}
}
}

infile.close(); // 文件内容操作完毕,关闭文件

// 使用copy算法输出vector中的内容
std::copy(vis.begin(), vis.end(), std::ostream_iterator<int>(std::cout, "\r\n"));

return 0;
}
疯狂-的-蜗牛 2012-08-08
  • 打赏
  • 举报
回复
第一:C++的文件流貌似也只是封装了C库函数,所以C++可以做的C一定可以做;
第二:C++一行一行的读,把所有内容放到一个string中,string太强大了,剩下的
你想干嘛还不容易?
smiles_ 2012-08-08
  • 打赏
  • 举报
回复
能用C++的输入输出流处理吗,ifstream

[Quote=引用 1 楼 的回复:]

C/C++ code

#include <stdio.h>

int main(int argc, char* argv[])
{
FILE* file;
char ch;
char str[80];
int i;

file = fopen("6.txt", "r");
if(file == NULL)
{
retur……
[/Quote]
图灵狗 2012-08-08
  • 打赏
  • 举报
回复

#include <stdio.h>

int main(int argc, char* argv[])
{
FILE* file;
char ch;
char str[80];
int i;

file = fopen("6.txt", "r");
if(file == NULL)
{
return -1;
}

i = 0;
while(!feof(file))
{
ch = fgetc(file);
if(ch == '*' || ch == '\n')
{
str[i] = '\0';
printf("%s\n", str);
i = 0;
}
else if(isdigit(ch))
{
str[i++] = ch;
}
}

fclose(file);

return 0;
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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