【问题标题】:Creating an input file in c++在 C++ 中创建输入文件
【发布时间】:2021-11-09 23:57:57
【问题描述】:

我不知道为什么

std::ifstream dbf = ("db.txt") 报错

但是std::ifstream dbf ("db.txt")没有

谢谢你,我只是想明白这一点

【问题讨论】:

  • 错误信息是什么意思?
  • 请求从“const char [7]”转换为非标量类型“std::ifstream”
  • 你为什么希望他们做同样的事情?你了解括号的不同含义吗,比如sqrt(4)a = (b+c)*d
  • 第一个示例中的大括号无效,我认为如果 fstream 构造函数不明确,它会起作用。

标签: c++ file-io


【解决方案1】:
std::ifstream dbf ("db.txt") 

显式调用构造函数的语法。

"db.txt" 作为单个参数传递以构造std::ifstream

std::ifstream dbf = ("db.txt")

转换 "db.txt"std::ifstream 的语法。

这不会编译,因为std::ifstream 不支持从字符串文字进行隐式转换。

虽然构造函数也可以设计为支持隐式转换,但此构造函数调用has been marked explicit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2012-11-10
    • 2023-03-13
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多