求助!!!VC中用C++编程按行读取txt文档中的数据并显示 数据编程c++vc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用while(fscanf())这种来读,读的时候,里面的格式要和你文件中的一样,然后循环条件设定为你要读取的数据的个数就可以了,比如你有两个数据要读,那就应该这么写(while(2 == fscanf("%d %d",&a,&b)))这样之后,就能一直读完所有的文件了,注意,一定要让fscanf的第一个参数中的格式和你文件中的一模一样 mfc对话框 对话框类添加指针成员class CMfcdlg2014Dlg : public CDialog{// Constructionpublic: CStdioFile *p; CMfcdlg2014Dlg(CWnd* pParent = NULL); // standard constructor........对话框类构造函数new 出来..... p = new CStdioFile(_T("测试文本.txt"), CFile::modeRead);......添加关闭消息响应函数,关闭文件 delete释放对象void CMfcdlg2014Dlg::OnClose() { // TODO: Add your message handler code here and/or call default p->Close(); delete p; CDialog::OnClose();}按钮响应函数void CMfcdlg2014Dlg::OnButton1() { // TODO: Add your control notification handler code here CString s; if(!feof(p->m_pStream)) { p->ReadString(s); SetDlgItemText(IDC_EDIT1, s); CString s1,s2,s3; int n1, n2; n1 = s.Find(',',0); s1 = s.Left(n1); n2 = s.Find(',', n1+1); s2 = s.Mid(n1+1, n2-n1-1); s3 = s.Mid(n2+1); SetDlgItemText(IDC_EDIT2, s1); SetDlgItemText(IDC_EDIT3, s2); SetDlgItemText(IDC_EDIT4, s3); } else { MessageBox(_T("已经读完")); }}效果图 CStdioFile file; file.Open((LPCTSTR)_T("StudentGrade.txt"), CFile::modeReadWrite); CString str; while (file.ReadString(str)) { }用file.ReadString 读取一行,然后会指向下一行。 #include<stdio.h>#include<cstdlib>int main(){ FILE** fp=new (FILE*); char c; if (fopen_s(fp,"D:\\portOpen.txt", "r") != NULL){ printf("error...\n"); return -1; } while (fscanf_s(*fp, "%c", &c, 1) == 1){ if (c == ',' || c == ';'){ putchar(c); printf("\n"); } else putchar(c); } system("pause");} 你这是MFC类库里的吧,能不能在源文件中实现 能不能把程序帮我写出来啊,楼主是新手,很多东西还不会不会可以学啊或者你出钱我出力#include<iostream.h>#include<fstream.h>#include<stdlib.h>//using namespace std;int main(){ ifstream inData; //string str; char ch[100]; char fileName[60]; cout<<"Please input the name of file:\n"; cin>>fileName; inData.open(fileName,ios::in); if(!inData) { cerr<<"Flie could not be open."<<endl; abort(); } while(!inData.eof()) { inData.getline(ch,100); cout<<ch<<endl; } inData.close(); return 0;}这是我的程序,有几个问题,希望能帮个忙<iostream.h>和<iostream>到底有什么区别啊,网上都只是说<iostream.h>是旧标准,<iostream> using namespace std;是新的。一个是头文件,一个是命名空间,都是为了声明一些变量和函数,可编译的时候不同的模式,会有不同的问题。比如说,头文件情况下,没有#include<stdlib.h>时,abort()在编译的时候会报错;但是在命名空间的情况下,没有#include<stdlib.h>,abort()也不会报错。还有在命名空间的情况下,读取数据时屏幕上什么都不显示,倒是会有看似读取程序的操作,改成头文件模式时,数据就能读出来了,这是什么原因呢 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库 能不能把程序帮我写出来啊,楼主是新手,很多东西还不会不会可以学啊或者你出钱我出力#include<iostream.h>#include<fstream.h>#include<stdlib.h>//using namespace std;int main(){ ifstream inData; //string str; char ch[100]; char fileName[60]; cout<<"Please input the name of file:\n"; cin>>fileName; inData.open(fileName,ios::in); if(!inData) { cerr<<"Flie could not be open."<<endl; abort(); } while(!inData.eof()) { inData.getline(ch,100); cout<<ch<<endl; } inData.close(); return 0;}这是我的程序,有几个问题,希望能帮个忙<iostream.h>和<iostream>到底有什么区别啊,网上都只是说<iostream.h>是旧标准,<iostream> using namespace std;是新的。一个是头文件,一个是命名空间,都是为了声明一些变量和函数,可编译的时候不同的模式,会有不同的问题。比如说,头文件情况下,没有#include<stdlib.h>时,abort()在编译的时候会报错;但是在命名空间的情况下,没有#include<stdlib.h>,abort()也不会报错。还有在命名空间的情况下,读取数据时屏幕上什么都不显示,倒是会有看似读取程序的操作,改成头文件模式时,数据就能读出来了,这是什么原因呢<iostream.h>和<iostream>的区别就是一个新一个旧都是头文件只不过新版用名字控件规范了一下使用这些东西没有一定之规怎么好用怎么来就行怎么改能够实现你的功能你就怎么改 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库如果要使用这些函数,需要包括哪些头文件 能不能把程序帮我写出来啊,楼主是新手,很多东西还不会不会可以学啊或者你出钱我出力#include<iostream.h>#include<fstream.h>#include<stdlib.h>//using namespace std;int main(){ ifstream inData; //string str; char ch[100]; char fileName[60]; cout<<"Please input the name of file:\n"; cin>>fileName; inData.open(fileName,ios::in); if(!inData) { cerr<<"Flie could not be open."<<endl; abort(); } while(!inData.eof()) { inData.getline(ch,100); cout<<ch<<endl; } inData.close(); return 0;}这是我的程序,有几个问题,希望能帮个忙<iostream.h>和<iostream>到底有什么区别啊,网上都只是说<iostream.h>是旧标准,<iostream> using namespace std;是新的。一个是头文件,一个是命名空间,都是为了声明一些变量和函数,可编译的时候不同的模式,会有不同的问题。比如说,头文件情况下,没有#include<stdlib.h>时,abort()在编译的时候会报错;但是在命名空间的情况下,没有#include<stdlib.h>,abort()也不会报错。还有在命名空间的情况下,读取数据时屏幕上什么都不显示,倒是会有看似读取程序的操作,改成头文件模式时,数据就能读出来了,这是什么原因呢<iostream.h>和<iostream>的区别就是一个新一个旧都是头文件只不过新版用名字控件规范了一下使用这些东西没有一定之规怎么好用怎么来就行怎么改能够实现你的功能你就怎么改你的说法我也很赞同,怎么合适怎么来,我也一直认为它们的作用是一样的,可是为什么我的程序在读取数据的时候为什么会失败呢 帮你测试了一下abort()在debug下就是弹assert窗口release下就好了 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库如果要使用这些函数,需要包括哪些头文件比如:CString 要包含#include"Afx.h"你上MSDN查看 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库如果要使用这些函数,需要包括哪些头文件比如:CString 要包含#include"Afx.h"你上MSDN查看你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库如果要使用这些函数,需要包括哪些头文件比如:CString 要包含#include"Afx.h"你上MSDN查看你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱http://www.microsoft.com/zh-cn/download/details.aspx?id=20955 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库如果要使用这些函数,需要包括哪些头文件比如:CString 要包含#include"Afx.h"你上MSDN查看你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱你要学会用谷歌、百度,而不是由问题就到这来提问。学会自学 你这是MFC类库里的吧,能不能在源文件中实现控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库如果要使用这些函数,需要包括哪些头文件比如:CString 要包含#include"Afx.h"你上MSDN查看你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱http://www.microsoft.com/zh-cn/download/details.aspx?id=20955谢谢 怎么用饼图 来画统计的百分比? 请问无模式对话框为什么使用DoDataExchange就会报ASSERT 右键弹出菜单 VS2005添加ActiveX/Com后,没有添加类,以前VC6会自动添加一个类的,网上没找到解决的答案。 鼠标拖动按钮,按钮刷新的问题。 有什么原因会提示undeclared identifier? 急,如何用一个对话框类实现象选择文件一样选择一个文件夹? *.xml用什么软件创建,xml有什么样的IDE,谁最先提出的xml? VC ODBC调用存储过程求助! 为什么会有这样的错误??? 求助几个关于IOCP的问题。跪求高手解惑。。 马的遍历
class CMfcdlg2014Dlg : public CDialog
{
// Construction
public:
CStdioFile *p;
CMfcdlg2014Dlg(CWnd* pParent = NULL); // standard constructor
........对话框类构造函数new 出来
.....
p = new CStdioFile(_T("测试文本.txt"), CFile::modeRead);
......
添加关闭消息响应函数,关闭文件 delete释放对象
void CMfcdlg2014Dlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
p->Close();
delete p;
CDialog::OnClose();
}
按钮响应函数
void CMfcdlg2014Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString s;
if(!feof(p->m_pStream))
{
p->ReadString(s);
SetDlgItemText(IDC_EDIT1, s);
CString s1,s2,s3;
int n1, n2;
n1 = s.Find(',',0);
s1 = s.Left(n1);
n2 = s.Find(',', n1+1);
s2 = s.Mid(n1+1, n2-n1-1);
s3 = s.Mid(n2+1);
SetDlgItemText(IDC_EDIT2, s1);
SetDlgItemText(IDC_EDIT3, s2);
SetDlgItemText(IDC_EDIT4, s3);
}
else
{
MessageBox(_T("已经读完"));
}
}
效果图
CStdioFile file;
file.Open((LPCTSTR)_T("StudentGrade.txt"), CFile::modeReadWrite);
CString str;
while (file.ReadString(str))
{
}
用file.ReadString 读取一行,然后会指向下一行。
#include<cstdlib>
int main(){
FILE** fp=new (FILE*);
char c;
if (fopen_s(fp,"D:\\portOpen.txt", "r") != NULL){
printf("error...\n");
return -1;
}
while (fscanf_s(*fp, "%c", &c, 1) == 1){
if (c == ',' || c == ';'){
putchar(c);
printf("\n");
}
else
putchar(c);
}
system("pause");
}
或者你出钱我出力
#include<iostream.h>
#include<fstream.h>#include<stdlib.h>//using namespace std;int main()
{
ifstream inData;
//string str;
char ch[100];
char fileName[60];
cout<<"Please input the name of file:\n";
cin>>fileName;
inData.open(fileName,ios::in);
if(!inData)
{
cerr<<"Flie could not be open."<<endl;
abort();
}
while(!inData.eof())
{
inData.getline(ch,100);
cout<<ch<<endl;
}
inData.close();
return 0;
}
这是我的程序,有几个问题,希望能帮个忙
<iostream.h>和<iostream>到底有什么区别啊,网上都只是说<iostream.h>是旧标准,<iostream> using namespace std;是新的。一个是头文件,一个是命名空间,都是为了声明一些变量和函数,可编译的时候不同的模式,会有不同的问题。
比如说,头文件情况下,没有#include<stdlib.h>时,abort()在编译的时候会报错;但是在命名空间的情况下,没有#include<stdlib.h>,abort()也不会报错。还有在命名空间的情况下,读取数据时屏幕上什么都不显示,倒是会有看似读取程序的操作,改成头文件模式时,数据就能读出来了,这是什么原因呢
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
或者你出钱我出力
#include<iostream.h>
#include<fstream.h>#include<stdlib.h>//using namespace std;int main()
{
ifstream inData;
//string str;
char ch[100];
char fileName[60];
cout<<"Please input the name of file:\n";
cin>>fileName;
inData.open(fileName,ios::in);
if(!inData)
{
cerr<<"Flie could not be open."<<endl;
abort();
}
while(!inData.eof())
{
inData.getline(ch,100);
cout<<ch<<endl;
}
inData.close();
return 0;
}
这是我的程序,有几个问题,希望能帮个忙
<iostream.h>和<iostream>到底有什么区别啊,网上都只是说<iostream.h>是旧标准,<iostream> using namespace std;是新的。一个是头文件,一个是命名空间,都是为了声明一些变量和函数,可编译的时候不同的模式,会有不同的问题。
比如说,头文件情况下,没有#include<stdlib.h>时,abort()在编译的时候会报错;但是在命名空间的情况下,没有#include<stdlib.h>,abort()也不会报错。还有在命名空间的情况下,读取数据时屏幕上什么都不显示,倒是会有看似读取程序的操作,改成头文件模式时,数据就能读出来了,这是什么原因呢<iostream.h>和<iostream>的区别就是一个新一个旧
都是头文件只不过新版用名字控件规范了一下
使用这些东西没有一定之规
怎么好用怎么来就行
怎么改能够实现你的功能你就怎么改
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
如果要使用这些函数,需要包括哪些头文件
或者你出钱我出力
#include<iostream.h>
#include<fstream.h>#include<stdlib.h>//using namespace std;int main()
{
ifstream inData;
//string str;
char ch[100];
char fileName[60];
cout<<"Please input the name of file:\n";
cin>>fileName;
inData.open(fileName,ios::in);
if(!inData)
{
cerr<<"Flie could not be open."<<endl;
abort();
}
while(!inData.eof())
{
inData.getline(ch,100);
cout<<ch<<endl;
}
inData.close();
return 0;
}
这是我的程序,有几个问题,希望能帮个忙
<iostream.h>和<iostream>到底有什么区别啊,网上都只是说<iostream.h>是旧标准,<iostream> using namespace std;是新的。一个是头文件,一个是命名空间,都是为了声明一些变量和函数,可编译的时候不同的模式,会有不同的问题。
比如说,头文件情况下,没有#include<stdlib.h>时,abort()在编译的时候会报错;但是在命名空间的情况下,没有#include<stdlib.h>,abort()也不会报错。还有在命名空间的情况下,读取数据时屏幕上什么都不显示,倒是会有看似读取程序的操作,改成头文件模式时,数据就能读出来了,这是什么原因呢<iostream.h>和<iostream>的区别就是一个新一个旧
都是头文件只不过新版用名字控件规范了一下
使用这些东西没有一定之规
怎么好用怎么来就行
怎么改能够实现你的功能你就怎么改
你的说法我也很赞同,怎么合适怎么来,我也一直认为它们的作用是一样的,可是为什么我的程序在读取数据的时候为什么会失败呢
abort()在debug下就是弹assert窗口
release下就好了
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
如果要使用这些函数,需要包括哪些头文件
比如:CString 要包含#include"Afx.h"
你上MSDN查看
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
如果要使用这些函数,需要包括哪些头文件
比如:CString 要包含#include"Afx.h"
你上MSDN查看
你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
如果要使用这些函数,需要包括哪些头文件
比如:CString 要包含#include"Afx.h"
你上MSDN查看
你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱
http://www.microsoft.com/zh-cn/download/details.aspx?id=20955
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
如果要使用这些函数,需要包括哪些头文件
比如:CString 要包含#include"Afx.h"
你上MSDN查看
你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱
你要学会用谷歌、百度,而不是由问题就到这来提问。学会自学
控制台中也可以用很多MFC类库里的东西,有些不能用,如:和图形相关的库
如果要使用这些函数,需要包括哪些头文件
比如:CString 要包含#include"Afx.h"
你上MSDN查看
你的MSDN是在线的还是下载的,如果是下载的,从哪下的,需要积分还是钱
http://www.microsoft.com/zh-cn/download/details.aspx?id=20955
谢谢