如何读取和输出文本数据

happyarlene 2012-05-07 10:33:54
有个5列70行的文本数据,如何通过C++来读取
...全文
169 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsnry 2012-05-16
  • 打赏
  • 举报
回复
++



ifstream,ostream 没有找到格式化读取的函数

像楼主这种需要 特殊格式的,用c++,不知道怎么搞


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

引用 14 楼 的回复:
用C的简单点

支持!
摒弃cin、cout、fstream
使用scanf、printf、FILE *
[/Quote]
hnzmdzcm 2012-05-16
  • 打赏
  • 举报
回复
fstream很难理解,建议用C
hnzmdzcm 2012-05-16
  • 打赏
  • 举报
回复
fstream很难理解,建议用C
happyarlene 2012-05-16
  • 打赏
  • 举报
回复
那高手可否对我那个问题整个C编程的模版出来啊
赵4老师 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
用C的简单点
[/Quote]
支持!
摒弃cin、cout、fstream
使用scanf、printf、FILE *
happyarlene 2012-05-16
  • 打赏
  • 举报
回复
没办法,别人要求做到vc++里
happyarlene 2012-05-16
  • 打赏
  • 举报
回复
是这样的,我做了个对话框,有一个静态文本标题是文件名:,有个编辑框,有个Button,我想达到的目的就是在编辑框里输入文件名例如0517.txt,点击确定后出现0517.txt这个文档里的14行7列的数据我的代码如下:void input()
{
}
double x[7][14];
void CMy0514Dlg::OnButton1()
{
// TODO: Add your control notification handler code here

int i,j;
char * str1;
CString str;
GetDlgItem(IDC_Open)->GetWindowText(str);
str1=str.GetBuffer(str.GetLength());
ifstream fin(str1);
if(!fin)
{
CString str;
str="不能打开这个文件";
MessageBox(str);
}
for(i=0;i<7;i++)
{
m_list.InsertItem(i,"");
for(j=0;j<14;j++)
{
fin>>x[i][j];
CString test;
test.Format("%.2f",x[i][j]);
m_list.SetItemText(i,j,test);
}
}
fin.close();


}
但是我运行后只出现了文档里的部分数据,所以请高手指点,我觉得问题是出在那个14行7列的数组上,但我没想出怎么解决
IVERS0N 2012-05-16
  • 打赏
  • 举报
回复
用C的简单点
happyarlene 2012-05-16
  • 打赏
  • 举报
回复
你这个例子好像与这个文件f3.dat都没什么关系啊,我的比你这个例子要复杂些,我的是要把固定文件的数组数据读出来
octopus666 2012-05-16
  • 打赏
  • 举报
回复
可以看看我空间C++ 栏目的读取txt
happyarlene 2012-05-16
  • 打赏
  • 举报
回复
只是显示出了部分数据,数据内容是正确的,不知道是不是因为数组没处理好的原因
EzioChen 2012-05-15
  • 打赏
  • 举报
回复
我这儿有个例子,你拿去看看可能会有帮助~
#include<iostream>
#include<fstream>
using namespace std;
int test_write()
{
ofstream outf("f3.dat",ios::binary);

if(!outf)
{
cout<<"Cannot open output file.\n";
exit(1);
}
char ch='a';
for(int i=0;i<26;i++)
{
outf.put(ch);
ch++;
}
outf.close();
return 0;
}
int test_read()
{
ifstream inf("f3.dat",ios::binary);
if(!inf)
{
cout<<"Cannot open input file\n";
exit(1);
}

char ch;
while(inf.get(ch))
cout<<ch;
inf.close();
return 0;
}

int main()
{
test_write();
test_read();
return 0;
}
jiuchang 2012-05-15
  • 打赏
  • 举报
回复
你不是说是5列的文本吗,是不是一些没有第7列啊
显示出来的几行数据,结果正确吗
happyarlene 2012-05-15
  • 打赏
  • 举报
回复
我打开一个文本文档,想将文档里的14行7列的数组数据在列表框显示出,主要代码如下:
void input()
{
}
double x[7][14];
void CMy0514Dlg::OnButton1()
{
// TODO: Add your control notification handler code here

int i,j;
char * str1;
CString str;
GetDlgItem(IDC_Open)->GetWindowText(str);
str1=str.GetBuffer(str.GetLength());
ifstream fin(str1);
if(!fin)
{
CString str;
str="不能打开这个文件";
MessageBox(str);
}
for(i=0;i<7;i++)
{
m_list.InsertItem(i,"");
for(j=0;j<14;j++)
{
fin>>x[i][j];
CString test;
test.Format("%.2f",x[i][j]);
m_list.SetItemText(i,j,test);
}
}
fin.close();


}
运行后只显示出部分数据,不知道原因何在?
请高手赐教
happyarlene 2012-05-15
  • 打赏
  • 举报
回复
就是普通的实验数据已存于一个.txt的文档中,然后向通过VC++编程来来实现对这个文档的读取并将文档中的数据在列表框中显示出来
自信男孩 2012-05-07
  • 打赏
  • 举报
回复
数据有什么特点吗?即有什么规律。如果有规律可以使用fscanf();还有一个问题,这些在文件中内容你是如何写进去的,如果是通过别人的程序以二进制的形式写入的,那么我想还是使用fread()和fwrite();函数比较好。如果是手动写入的,那么可以使用fscanf();如果是没有规律的,那么就直接使用fgets();
jiuchang 2012-05-07
  • 打赏
  • 举报
回复
fgets读
fprintf写
justkk 2012-05-07
  • 打赏
  • 举报
回复
fscanf
bsnry 2012-05-07
  • 打赏
  • 举报
回复
c++ 貌似没有格式化的函数

ifstream

ofstream
bsnry 2012-05-07
  • 打赏
  • 举报
回复

FILE* file;

file.open(文件名字,"a+");

rewind(file)

fread(.......);

fwrite(...........);



fcsanf 格式化输入

fprintf 格式化暑促
加载更多回复(1)

64,681

社区成员

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

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