发现此文件读取代码中的错误(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++) 的相关文章

  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • 在内容级别与 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