C 语法通过变量和文本命名文件
C++ syntax to name file via variable and text
我有一个程序,该程序以文件的名称为参数(示例:books.txt),运行,然后将结果输出到新的文本文件中。我需要用附录命名输出文件(示例:books_output.txt)。
我尝试的方法是
ofstream outputFile;
outputFile.open(argv[1] + "_output.txt", ofstream::out);
但这没有编译。我该如何使这项工作?
您的语句应该看起来像这样(如我的评论中所述):
outputFile.open(std::string(argv[1]) + "_output.txt", ofstream::out);
// ^^^^^^^^^^^^ ^
假设argv[1]
来自标准main()
签名
int main(int argc, char* argv[])
argv[1]
是char*
指针,您不能以这种方式连接char*
指针。
有些人会为支持过时的C 标准版本而费心,因此,早期版本的std::ofstream::open()
签名直接支持const std::string
参数,而仅支持const char*
。如果您有这种情况,您的陈述应该看起来像
outputFile.open((std::string(argv[1]) + "_output.txt").c_str(), ofstream::out);
您不能在2 C字符串之间放置A 。改用STD :: String。这样做
ofstream outputFile;
std::string fname = std::string(argv[1]) + "_output.txt";
outputFile.open(fname.c_str(), ofstream::out);
更多的C 版本允许
outputFile.open(fname, ofstream::out);
读取更好但意思是同一件事
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 打印逐行存储的文本文件
- C++文本文件输入