mfc中如何实现点击按钮打开一个指定的txt文件?

mfc中如何实现点击按钮打开一个指定的txt文件?,第1张

在 MFC 中,可以使用 CFileDialog 类来实现点击按钮打开一个指定的 TXT 文件

首先,在你的应用程序中添加一个按钮,用于打开文件对话框。

然后,为按钮添加单击事件处理函数,在函数中添加下面的代码:

void CYourAppDlg::OnBnClickedOpenfile()

{

CFileDialog dlg(TRUE, _T("txt"), _T("*.txt"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"), this)

if (dlg.DoModal() == IDOK)

{

CString path = dlg.GetPathName()

// open the file or do something with the path

}

}

其中,第一个CFileDialog 的构造函数中的参数分别表示:

使用文件打开对话框而不是文件保存对话框

默认文件类型为 txt

默认文件扩展名为 txt

OFN_FILEMUSTEXIST 和 OFN_HIDEREADONLY 这两个标志表示文件必须存在并且隐藏只读文件

第五个参数为文件类型过滤器,该参数表示只显示 .txt 格式的文件。

在 dlg.DoModal() == IDOK 条件成立后,可以使用 dlg.GetPathName() 函数获取选择文件的路径. 然后可以根据需要打开文件或进行其他 *** 作。

注意要在头文件中包含 <afxwin.h>和 <afxdlgs.h>,才能使用CFileDialog.

既然有1位数的数据也有4位数的数据,那么如果txt中没有特意的回车,行数和列数不可能确定。如果有回车的话,简单,用

#include <string.h>

char *strtok( char *str1, const char *str2 )

就能解决。

先用getline()一行读出一个str,并累加行数,然后

char *result = NULL

char string[100][100]

int x = 0

result = strtok( str, " ")

while( result != NULL ) {

strcpy(string[x++] , result)

result = strtok( NULL, " " )

}

这样用一个string数组就可以把全部数据保存下来。x记录了总数,然后x除以行数就是列数。

今天有空了,帮你把程序全写出来:

#include<iostream>

#include<string>

#include<fstream>

using namespace std

void main(){

char ch[100] = "\\0"

char b[100][100]

int x=0,y=0

ifstream fin("123.txt",ios::in)

fin.getline(ch,100)

while(!fin.eof()){

++x

cout<<ch<<endl

char *result = NULL

result = strtok(ch,",")

while( result != NULL ) {

strcpy(b[y++],result)

cout<<b[y-1]<<endl

result = strtok( NULL, "," )

}

memset(ch,0,100)

fin.getline(ch,100)

}

fin.close()

}

//已运行过了,没问题,b[100][100]是所有元素,x为行数,y/x为列数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11551741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存