同时使用两个 ifstream和 freopen 第二个就会失去效用,不知道错在了哪里!

1. 使用freopen打开:

bool CPicToolsDlg::readTxt2Seq(
std::string TxtName, std::vector<float > &Seq )
{
std::string TestTxt(TxtName); //
freopen(TestTxt.c_str(),"r",stdin);// 打开文件!
float ViewValue;
Seq.resize(0);
char ch; while(std::cin )
{
std::cin >> ViewValue;
Seq.push_back(ViewValue); } ///fin.close();
fclose(stdin);
return true;
}

2. 使用C格式的fopen打开

bool CPicToolsDlg::readTxt2Seq1(
std::string TxtName, std::vector<float > &Seq )
{
std::string TestTxt(TxtName); // FILE *fp = NULL;
if ((fp = fopen(TestTxt.c_str(), "r")) == NULL){
printf("Error in open file %s\n", TestTxt.c_str());
return false;
}
else{
printf(" file opened%s\n", TestTxt.c_str());
} //三元组,使用三元组逐个写入
float ViewValue;
Seq.resize(0); //char Temp[100];
//if (fin.is_open() )
//{
// fin.getline(Temp,100);
// int i = 0;
// while(i< 100 && Temp[i] !="\0" )//寻址级别不同,到底问题出在哪里了!
// {
// float ViewValue(Temp[i] );
// Seq.push_back(ViewValue);
// ++ i;
// }
//} //流出现问题
//if (fin.is_open() ) {
// while( fin.get(ch) )//寻址级别不同,到底问题出在哪里了!
// {
// if (ch !=(int)(" ") ){
// float ViewValue(ch );
// //fin >> ViewValue; //利用 重定向输入 浮点值
// //std::cin >>ViewValue2;
// //std::cin >>ViewValue3;
// //P.x = ViewValue;
// //P.y = ViewValue2;
// //P.z = ViewValue3;
// Seq.push_back(ViewValue);
// }
// }
//} while (!feof(fp))//首先读取点云数据到点表points同时指定点对应的id:
{
int ret = fscanf(fp,"%f", &ViewValue);
Seq.push_back(ViewValue);
}//printf("%d\n", n); fclose(fp);
//fin.close();
//fclose(stdin);
return true;
}

使用C语言是注意事项,int ret = fscanf(fp,"%lf", &ViewValue);   lf 和f 有何不同之处?

3.修改后的代码,第一个使用freopen,第二个使用fopen可以正常运行了

void CPicToolsDlg::OnBnClickedButtonKmptest()
{
//字符串匹配
//打开目录文件
CFileDialog FileDlg(
TRUE, _T("*.pcd"), NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
_T("*.txt|*.txt| *.pcd|*.pcd| All Files (*.*) |*.*||"), NULL);//选取约定! FileDlg.m_ofn.lpstrTitle = _T("打开待显示序列文本!!!"); // 打开文件对话框的标题名 if (FileDlg.DoModal() != IDOK) {
MessageBox("打开文件失败!!!请重新检测", "提示", 0);
return ;
} CString FilePath = FileDlg.GetPathName();
std::string MyFileName = FilePath; std::vector<float > Seq(0);
this->readTxt2Seq(MyFileName,Seq); CFileDialog FileDlg2(
TRUE, _T("*.pcd"), NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
_T("*.txt|*.txt| *.pcd|*.pcd| All Files (*.*) |*.*||"), NULL);//选取约定! FileDlg2.m_ofn.lpstrTitle = _T("打开待显示模式文本!!!"); // 打开文件对话框的标题名 if (FileDlg2.DoModal() != IDOK) {
MessageBox("打开文件失败!!!请重新检测", "提示", 0);
return ;
} CString FilePath2 = FileDlg2.GetPathName();
std::string MyFileName2 = FilePath2; std::vector<float > P(0);
this->readTxt2Seq1(MyFileName2,P); const std::vector<float> Pattern(P); int Pos =
this->Kmptest(Seq ,Pattern ); }

C++多个文本读取问题的更多相关文章

  1. opencv从txt文本读取像素点并显示

    opencv从txt文本读取像素点并显示 文本储存格式为每行一个像素点,排列为RGB.每帧图像的帧头为65535.  如下图所示 废话不多说,代码如下: // #include <iostrea ...

  2. 批量文本读取URL获取正常访问且保留对应IP

    #coding=utf-8 import sys import requests for i in range(3000,4999,1): url = 'http://192.168.88.139:8 ...

  3. 接口测试工具-Jmeter使用笔记(六:从文本读取参数)

    使用场景:测试一个接口并发处理数据的能力,并且每次请求传入的参数都要不同. 解决方法--- CSV Data Set Config 列举一个实例,步骤中会侧重读取参数操作的说明,其他有疑问的步骤请查阅 ...

  4. 自动化测试-19.selenium定位之通过JS修改html写入日期数据以及从文本读取数据实战

    # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.support.select import ...

  5. python3文本读取与写入常用代码

    创建文件夹: import os import shutil def buildfile(echkeyfile): if os.path.exists(echkeyfile): #创建前先判断是否存在 ...

  6. JAVA本地文本读取---解决中文乱码

    import java.io.*; public class ReadFile { public static void main(String[] args) { try { File file = ...

  7. 微信小程序-textarea中的文本读取以及换行问题

    今天客户那边要求textarea中输入的问题可以按回车键换行,而我使用的是bindinput获取值,但是呢bindinput 处理函数的返回值并不会反映到 textarea 上,按回车键导致点击换行符 ...

  8. java 文本读取 写入指定长度的内容

  9. ABAP读取长文本的方法

    SAP中所有的项目文本都存在以下两张数据表中: 1. STXH  抬头项目文本 透明表 2. STXL  明细项目文本   透明表 长文本读取方法 首先在STXH和STXL中根据OBJECT NAME ...

随机推荐

  1. libcloud代码研究(一)——基本架构

    libcloud是apache下整合多种云服务接口的项目.最近,在研究libcloud代码的同时,将阿里云存储(Ali OSS)和百度云存储用libcloud storage driver规范进行封装 ...

  2. Python获取当前系统时间

    Python获取当前系统时间 import time #返回当前时间 def GetNowTime():     return time.strftime("%Y-%m-%d %H:%M:% ...

  3. HDU 5467

    第一次写LCT,各种模板加入...以后都只遇到有新意的题目再更新了 这道题就是LCT,但是,难在一个回退的操作.这时,可以通过改变执行顺序,先把要回退后再做的操作先执行了,再回退到之前的执行.这时,建 ...

  4. UNIX环境高级编程之第3章:文件I/O

    3.1 引言 文件I/O函数:打开文件,读文件,写文件 经常使用到五个函数:open, read, write, lseek, close. 本章描写叙述的函数都是:不带缓冲的I/O(unbuffer ...

  5. BZOJ 2440 中山市选2011 全然平方数 二分答案+容斥原理+莫比乌斯反演

    题目大意:求第k个无平方因子数是多少(无视原题干.1也是全然平方数那岂不是一个数也送不出去了? 无平方因子数(square-free number),即质因数分解之后全部质因数的次数都为1的数 首先二 ...

  6. Google android source code build 问题总结【转】

    本文转载自:http://light3moon.com/2015/01/31/Google%20android%20source%20code%20build%20%E9%97%AE%E9%A2%98 ...

  7. hihocoder 1680 hiho字符串2 dp求方案数+递归

    我们定义第一代hiho字符串是"hiho". 第N代hiho字符串是由第N-1代hiho字符串变化得到,规则是: h -> hio i -> hi o -> ho ...

  8. DCloud-MUI:下拉刷新、上拉加载

    ylbtech-DCloud-MUI:下拉刷新.上拉加载 1. 下拉刷新返回顶部 0. http://dev.dcloud.net.cn/mui/pulldown/ 1. 概述 为实现下拉刷新功能,大 ...

  9. gulp安装成功但是无法使用

    gulp安装正常,但是查看gulp -v和使用gulp的时候报错, 原因:缺少环境变量或环境变量错误. 查找环境变量的方法:在dos下输入npm config get prefix就会显示一个地址,这 ...

  10. Anagram Groups(字符串)

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2316 理解错一点题意就能WA到死...题中对于 ...