CString strTemp//只保存当前行数据
std::vector<CString>strVector//用于保存每行读取出来的内容
if(!cFile.Open("test.txt", CFile::modeRead))
{
cout<<"打开文件失败"<<endl
}
while(cFile.ReadString(strTemp))
{
strVector.push_back(strTemp)
}
运行完成,strVector中就保存了test.txt中的所有内容。
CString strTextCString szLine//存储行字符串
CStdioFile file
file.Open("ts.txt",CFile::modeRead)//打开文件
//逐行读取字符串
while( file.ReadString( szLine ) )
{
strText += szLine
}
MessageBox(strText)
//关闭文件
file.Close()
C++用fstream中的getline()函数读取一行文件内容
C语言可用fgets()函数读取一行文件内容
两者有一些区别:
1、fgest()读到回车结束,回车符也会写到接收buf中
2、getline()可以设定读到哪个字符结束,默认是回车符,但指定的这个字符不会写到接收buf中。
3、fgets()读取数据,如果在读到回车符之前,达到了最大可读个数,则也会返回已读到的buf数据
4、getline()在读数据时,遇到指定字符之前,达到了最大可读个数,则会返回读错误
参考代码如下:
C++版本
#include <iostream>#include <fstream>
using namespace std
int main()
{
ifstream in("test.txt")
char str[1024]={0}
if ( in.fail() )
{
cout << "open file error" <<endl
return -1
}
while( in.getline(str,sizeof(str),'\n' ) )
{
cout << str<<endl
}
in.close()
return 0
}
C语言版本
#include <stdio.h>int main()
{
FILE *fp
fp=fopen("test.txt","r")
char str[1024]
if ( fp == NULL )
{
printf("open file error\n" )
return -1
}
while( fgets(str, sizeof(str), fp ) )
{
printf("%s", str )
}
fclose(fp)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)