发现此文件读取代码中的错误(C++)

2024-03-17

谁能告诉我为什么这个方法不能编译?

void Statistics::readFromFile(string filename)
{
    string line;
    ifstream myfile (filename);
    if (myfile.is_open())
    {
        while (! myfile.eof() )
        {
            getline (myfile,line);
            cout << line << endl;
        }
        myfile.close();
    }

    else cout << "Unable to open file"; 

}

应该有用吧?然而,我总是收到以下错误消息:



Line Location Statistics.cpp:15: error:
   no matching function for call to
   'std::basic_ifstream<char, std::char_traits<char> >::
      basic_ifstream(std::string*)'
  

任何帮助将不胜感激。


ifstream myfile (filename);

应该:

ifstream myfile (filename.c_str() );

另外,你的读循环逻辑是错误的。它应该是:

while ( getline( myfile,line ) ){
   cout << line << endl;
}

您使用的 eof() 函数才有意义after你尝试过阅读一些东西。

要了解为什么会产生影响,请考虑以下简单代码:

int main() {
    string s; 
    while( ! cin.eof() ) {
        getline( cin, s );
        cout << "line is  "<< s << endl;
    }
}

如果运行此命令并键入 ctrl-Z 或 ctrl-D 来指示 EOF立即地,即使实际上没有输入任何行(因为 EOF),也会执行 cout。一般来说,eof() 函数不是很有用,您应该测试 getline() 或流提取运算符等函数的返回值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发现此文件读取代码中的错误(C++) 的相关文章

  • 是否有可能劫持标准输出

    我正在尝试使用 C 重定向 Windows XP 上已运行进程的标准输出 我知道如果我自己生成进程 我可以做到这一点 但对于这个应用程序 我更喜欢一个 监听器 我可以附加到另一个进程 这在纯 Net 中可能吗 如果不可能 在 Win32 中
  • Caliburn.Micro - ShowDialog() 如何关闭对话框?

    EDIT 新信息 刚刚设法让记录器工作 老实说 我不知道 cm 有一个 并且在尝试使用时收到此消息TryClose TryClose requires a parent IConductor or a view with a Close m
  • 生成多个随机数

    我想生成 25 个唯一的随机数并将它们列在控制台中 数字的长度应至少为 10 个字符 有什么简单的方法可以做到这一点吗 尝试将数字构建为字符串 并使用 HashSet 确保它们是唯一的 Random random new Random Ha
  • 自动映射器多对多 stackoverflowException

    我遇到以下映射的堆栈溢出 Mapper CreateMap
  • STL之类的容器typedef快捷方式?

    STL 容器的常见模式是这样的 map
  • 平滑手绘曲线

    我有一个允许用户绘制曲线的程序 但这些曲线看起来不太好 它们看起来摇摇欲坠 而且是手绘的 所以我想要一种能够自动平滑它们的算法 我知道平滑过程中存在固有的模糊性 因此它不会每次都完美 但这种算法似乎确实存在于多个绘图包中 并且它们工作得很好
  • 最新 .Net MongoDb.Driver 的连接问题

    我创建了一个 MongoLab 沙箱数据库 我与 MongoChef 连接 效果很好 我通过 Nuget 安装了 MongoDB Driver 2 2 2 我编写了一些简单的 C 演示代码 但就是无法使其工作 连接字符串是直接从 Mongo
  • Dapper 在执行时挂起

    我有一个 IDb连接 sql UPDATE 表名 SET json json lastupdate SYSDATE WHERE id id var param new DynamicParameters param Add json jso
  • 嵌入资源文件的路径

    我的资源文件中有一个图标 我想引用它 这是需要图标文件路径的代码 IWshRuntimeLibrary IWshShortcut MyShortcut MyShortcut IWshRuntimeLibrary IWshShortcut W
  • 组合框下拉位置

    我有一个最大化的表单 其中包含 500px 的组合框控件 停靠在右上角 Width 尝试打开组合框后 列表的一半超出了屏幕 如何强制列表显示在表单中 棘手的问题 我找不到解决这个问题的好办法 只是一个解决方法 添加一个新类并粘贴如下所示的代
  • opencv中如何去除二值图像噪声?

    将图像转换为二值图像 黑白 后如果有任何噪音怎么办 我消除了那些不需要的噪音 您可以看到下图的黑色区域内有一些白噪声 我该如何去除噪声 使用opencv http img857 imageshack us img857 999 blackn
  • Visual Studio 中列表框的上移、下移按钮[重复]

    这个问题在这里已经有答案了 我正在尝试制作一个上移按钮和一个下移按钮 以移动 Microsoft Visual Studio 2012 中列表框中的选定项目 我已经在 WDF jquery winforms 和其他一些表单中看到了其他示例
  • 对作为函数参数传递的指针使用删除

    删除作为函数参数传递的指针是否可以 并且合法 如下所示 include
  • 应用程序处于中断模式。您的应用程序已进入中断状态,

    我发现自己遇到了同样的问题here https stackoverflow com questions 36204009 disable break mode page in vs2015 我在 dll 中使用 Windows 窗体 这是针
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • 更改 Xamarin.Forms 应用中顶部栏和底部栏(ControlsBar、StatusBar)的颜色

    无论如何 即使后面需要特定于平台的代码 也可以更改顶部栏 蓝色的 和底部栏 黑色的 的颜色吗 我希望添加对浅色和深色模式的支持 因此我希望能够在运行时更改它 有可能的 Android Using Window SetStatusBarCol
  • 连接到没有元数据的网络服务

    我想连接到此网络服务 https training api temando com schema 2009 06 server wsdl https training api temando com schema 2009 06 serve
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 为什么在构造函数中设置字段是(或不是)线程安全的?

    假设您有一个像这样的简单类 class MyClass private readonly int a private int b public MyClass int a int b this a a this b b public int
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma

随机推荐

  • 在内容级别与 google chrome 扩展一起使用时,未定义 DP_jQuery_*

    我正在开发一个谷歌浏览器扩展 我正在尝试在现有网页 内容级别 的 jquery ui 对话框中使用 jquery ui datepicker 就像这样 截屏 http sites google com site kamimark files
  • 如何获取最近经过身份验证的用户?

    我正在使用 MVC 3 并且刚刚实现了 FormsAuthenticationService 的包装器 类似于以下内容 public void SignIn string username bool createPersistantCook
  • 小程序中的 java.lang.reflect.invocacytargetexception 错误 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的应用程
  • 在 mongoose 中使用 mongodb 多键索引方法索引引用数组

    我的架构有一个 ObjectId 数组 它们是对另一个架构的引用 我想要的是使用 mongodb 的多键索引方法来索引这个数组条目 所以给定一个ObjectId中的某些文档的产品目录集合 我可以列出我当前集合中具有给定的所有文档Object
  • 如何防止 VS2010 在每次更新服务引用时创建新绑定?

    我正在使用 C 3 5 和 Visual Studio 2010 中的 WCF 服务开发 Winforms 客户端应用程序 每次我使用 更新服务参考 在 IDE 中 考虑到我已经有一个有效的绑定app config 会生成一个具有相同名称和
  • 通过公共API导出非公共类型

    如果我有几个返回非公共类型的工厂方法和提供此非公共类型变量的配对方法集怎么办 这会导致 NetBeans 中出现标题为警告消息的结果 结果公共 API 将只包含两个配对的方法集 原因是使我的类型层次结构密封 就像 Scala 中的密封类 并
  • 异步更新数据后重绘 UITableView

    我有一个 UITableview 我使用数据异步加载 因此 tableview 可能会显示没有数据 我已经厌倦了 ReloadData 方法 但表视图仍然为空 直到我滚动表视图 突然数据出现 当我将表视图加载为详细视图并在项目之间切换时 会
  • 如何在终端中查看 Heroku 应用程序的当前数据库架构?

    我试图在终端 Mac OS X Lion 中查看我的 Heroku 应用程序架构 并偶然发现了一个可以执行此操作的命令 在终端中 我运行heroku run more db schema rb但它似乎显示较旧的架构版本 我刚刚迁移了 Her
  • FileHelpers:不带引号的 CSV 中的可选字段

    我在用文件助手 http www filehelpers com从 CSV 文件导入数据 问题是 某些版本的 CSV 文件具有比其他版本更多的字段 因此 我已将有时丢失的字段标记为可选 但这似乎不起作用 因为它不仅仅是在字段丢失时忽略 这似
  • Powershell 截断 SQL 查询输出

    我正在从 powershell 命令运行以下查询 不幸的是 该查询在结果字符串的末尾截断或添加了点 我调整了 powershell 的屏幕缓冲区大小 即右键单击 powershell 属性 gt 布局 gt 屏幕缓冲区大小 gt 宽度和高度
  • 当应用程序强制关闭或设备重新启动时,共享首选项会重置数据

    我正在开发一个在其中存储的应用程序username and password in SharedPreferences 一切对我来说都工作正常 存储和检索值 但我发现 当我重新启动设备或应用程序被强制关闭时 存储在SharedPrefere
  • Node.js 如何删除文件中的第一行

    我正在制作简单的 Node js 应用程序 我需要删除文件中的第一行 请问有什么办法可以做到吗 我认为使用 fs write 是可能的 但是如何呢 这是从文件中删除第一行的流版本 由于它使用流 意味着您不需要将整个文件加载到内存中 因此它更
  • Java - 创建具有给定范围的 IntStream,然后使用映射函数随机化每个元素

    因此 我创建了一个 IntStream 为其指定了 1 9 的范围 我希望能够使用 map 函数获取给定范围 1 9 中的每个元素并随机化每个元素 本质上 我想在每次程序运行时以不同的顺序流式传输数字 1 9 我对其他想法持开放态度 但它必
  • Azure 表存储在插入时引发异常:(409) 冲突

    我正在使用 Azure 表存储从 MVC 应用程序记录访问者信息 但有时会引发以下异常 WebException The remote server returned an error 409 Conflict System Net Htt
  • 如何对公共接口背后高度复杂的代码进行单元测试

    我想知道应该如何通过 NUnit 测试此类功能 Public void HighlyComplexCalculationOnAListOfHairyObjects calls 19 private methods totalling 100
  • Laravel 5.2 身份验证不起作用

    正如你们所知 Laravel 5 2 几天前发布了 我正在尝试这个新版本 我在 CLI 上使用以下命令创建了一个新项目 laravel new testapp As per 身份验证快速入门文档 https laravel com docs
  • 如何使用 Javascript 打开新的隐身窗口? (谷歌浏览器)

    我想帮助我的朋友在执行一些鼠标手势 鼠标笔划 Chrome 扩展中的自定义笔划 时在新的隐身窗口中打开网站 Chrome 扩展程序tabs权限可以使用chrome windows create https developer chrome
  • HList 只不过是一种复杂的元组编写方式吗?

    我真的很想找出差异所在 更一般地说 是为了识别不能使用 HList 的规范用例 或者更确切地说 与常规列表相比不会产生任何好处 我知道有 22 个 我相信 TupleN在 Scala 中 而只需要一个 HList 但这不是我感兴趣的概念差异
  • 客户希望网站上有“不可复制的图像”[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 发现此文件读取代码中的错误(C++)

    谁能告诉我为什么这个方法不能编译 void Statistics readFromFile string filename string line ifstream myfile filename if myfile is open whi