vc 如何逐行读取文本

vc 如何逐行读取文本,第1张

CStdioFile cFile

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 strText

CString 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

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存