关于C++文件读取问题,要实现的功能是,我输入文件路径和文件名,然后读取文件中的内容

关于C++文件读取问题,要实现的功能是,我输入文件路径和文件名,然后读取文件中的内容,第1张

#include<iostream>

#include<string>

#include<stdio.h>

using std::cin

using std::cout

using std::string

using std::endl

using std::getline

int main(){

string name // 文件路径和猜御文件名

FILE *stream //文件指针

char buf[126]

cout<<"please input the filename:"<<endl

getline(cin,name,'\n') //输入D:\\file.txt,\\转义为\,转义后的路径就是D:\file.txt

const char *p=name.data()

stream=fopen(p,"r") /手兆租/打开file.txt(fopen中填“name”行不行?),不能填name,这就最好加入容错处理

fgets(buf,126,stream)//把毕兆file.txt中的内容保存到数组buf中

for(int i=0i<=126i++)

cout<<buf[i] //输出文件内容

_fcloseall()

}

希望能帮到你

#include <stdio.h>

#include <stdlib.h>

#include <string.h>戚乎

#define BUF_SIZE 1024

#define KEY "AB2345"

#define KEY_LEN 7

int main()

{

int ch = 0

int first = 1//开始时的标志,因为是一个字符一个字符的扫描

int flag = 0//文件开辩码头是不是所要读内容的标志

int count = 0//遇到'\n'的个数

int pre_pos = 0, cur_pos = 0//前一次和当前文件指针的位置

char buf[BUF_SIZE] = {0}

FILE *fp = NULL

fp = fopen("test.txt", "r")

if (fp == NULL)

{

printf("Cann't open the file!\n")

exit(1)

}

else

{

while ((ch = fgetc(fp)) != EOF)

{

if (first)

{

//若要读取的内容在文件开头就有时

//移动指针到文件开头

fseek(fp, -1L, SEEK_CUR)

fgets(buf, KEY_LEN, fp)

if (strcmp(buf, KEY) == 0)

{

first = 0

flag = 1

continue

}

else

{

first = 0

}

}

if (ch == '\n')

{

count++//遇到'\n'的个数

pre_pos = cur_pos//上次遇到'\n'时文件指针的位置

cur_pos = ftell(fp)//当前遇到'\n'时文件指针高灶悉的位置

//文件开头内容符合要求的就适当移动指针位置

//然后读取输出来

if (count == 1 &&flag == 1)

{

fseek(fp, 0L, SEEK_SET)

memset(buf, 0, sizeof(buf))

fgets(buf, cur_pos - 1, fp)

printf("%s\n", buf)

}

//之后内容符合要求的就适当移动指针位置

//然后读取输出来

else

{

memset(buf, 0, sizeof(buf))

fgets(buf, KEY_LEN, fp)

if (strcmp(buf, KEY) == 0)

{

fseek(fp, (-1) * (KEY_LEN - 1), SEEK_CUR)

memset(buf, 0, sizeof(buf))

fgets(buf, cur_pos-1-pre_pos, fp)

printf("%s\n", buf)

}

}

}

}

}

fclose(fp)

return 0

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存