请问VC++(MFC)中如何读取文本文件?

需要有具体代码,要求如下:
1.文本文件事先已经存在 其中存储的是整型数据,格式可自己设定,但要清晰,如1(回车)1(回车)1(回车)。。。
2.读取出来的数据只需要数值1,并且将其存到相应的int型数组中
3.此数组每个数据加上另一数组的值(可能会很大,几十万的)以后再以int型数据存储到原来的文本文件中,格式不变(以备下次仍按1来读取)

谁有可行的代码,帮忙发一下吧,谢谢,在线等
如果该文本文件格式如num1=21(回车) num2=43(回车)。。。该怎么读取此文本文件并把等号后面的数值提取出来
最新回答
帕嘉音

2024-10-13 03:24:53

代码懒得写 给你个大概的思路
在MFC下读取和写入文本可以用CStudioFile类对象,比用C读简单,它的参考资料如下:
******************************************************************

CStdioFile类成员

数据成员:
m_pStream 包含了一个指向打开文件的指针

构造:
CStdioFile 从一个路径或文件指针构造一个CStdioFile对象

文本读/写 :
ReadString 读取一行文本
WriteString 写一行文本

一个CStdioFile对象代表一个用运行时函数fopen打开的C运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。
文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile对象时,字节对(0x0A,0x0D)被发送给该文件。当你读一个文件时,字节对(0x0A,0x0D)被翻译为一个字节(0x0A)。
当你读一个文件时,字节对(0x0A,0x0D)被翻译为一个字节(0x0A)。
CStdioFile不支持Duplicate,LockRange,和UnlockRange这几个CFile函数。如果在CStdioFile中调用了这几个函数,将会出现CNoSupported异常。
有关使用CStdioFile的更多信息,参见“Visual C++程序员指南”中的文章“MFC文件”,和“Microsoft Visual C++库参考”中的“Microsoft Visual C++ 6.0运行库参考”。
#include <afx.h>

**********************************************************************
文本文件的格式类似:1(回车) 2(回车)....
也就是一个数据一行
因为CStudioFile类读取文件时是一行一行读取的
将一行的内容读取到CString类对象中
然后再用CString函数的Format函数,将数字字符串格式化成整型数据并附给整型变量,这样就可以了

对数据处理后再写到源文件中时过程恰好相反(写数据时别忘了写回车符,"\r\n"或者"\n",具体哪个有用我忘了) 我就不多说了
烟花巷陌ヾ

2024-10-13 05:34:37

假设你的是TXT 文件 。
用C读,没问题的 。 你在stdafx.h中加上“stdio.h”。

#include<iostream>
#include "stdio.h"

using namespace std;
void main()
{
int data[10000];
int temp=29393;
int dex=0;
int Row =0;
FILE * fp;
fp = fopen("1.txt","a+");
if(NULL == fp) {cout<< "error open the file" ; }
else
{

char charTemp;
while((charTemp=fgetc(fp))!=EOF)
{
if( charTemp == '\n') Row++;
}
fp = fopen("1.txt","a+");
rewind(fp); //将指针移动到开始

for(int i=0;i<Row;i++)
{
fscanf(fp,"%d",data+dex);
dex++;
}

}//读取值

for(int i=0;i<Row;i++)
data[i] = data[i]+ temp ; //...你在这里修改值

fp = fopen("1.txt","w+");//将文件清空
fp = fopen("1.txt","a+");//将文件打开

for(int j=0;j<Row;j++)
fprintf(fp,"%d\n",data[j]);
fclose(fp); //OK 了

}// 记得建代码同级目录下建一个 1.txt . 写几个数字,
// exm
// 1.txt

// 1
// 1
// 1 ( 这里加个换行建)