C++ C++;自动将int值插入到"&引用;标志

C++ C++;自动将int值插入到"&引用;标志,c++,file,C++,File,我的程序要求用户输入一个int值。我需要应用程序在“”标记内插入输入的int值,这使其成为字符串值,从而使我能够使用字符串值保存txt文件 例如: 用户输入int:123 程序添加引号:“123” 所以新字符串的值为:“123” 现在,我可以使用新的字符串值保存一个文件,并将该字符串作为文件名 如果没有引号,ifstream不允许我保存文件 提前谢谢你不必这么做。您可以直接将“数字”保存为字符串: // read input std::string input; std::cin >>

我的程序要求用户输入一个int值。我需要应用程序在“”标记内插入输入的int值,这使其成为字符串值,从而使我能够使用字符串值保存txt文件

例如:

用户输入int:123 程序添加引号:“123” 所以新字符串的值为:“123”

现在,我可以使用新的字符串值保存一个文件,并将该字符串作为文件名

如果没有引号,ifstream不允许我保存文件


提前谢谢

你不必这么做。您可以直接将“数字”保存为字符串:

// read input
std::string input;
std::cin >> input;

// open output file with input as name
std::ofstream output_file(input.c_str()); // c_str() not needed in C++11

当然,您应该有一些中间步骤来进行输入验证。

这里的引号基本上是一条红鲱鱼。对于你想要完成的事情来说,它们既不是必要的,也不是足够的

你有两个选择。一种是将用户的输入读取为字符串,而不是算术类型:

std::string fname;

std::cout << "Please enter integer for file name: ";
std::getline(std::cin, fname);

std::fstream file(fname);
很可能您需要添加一个文件扩展名,因此如果用户输入
123
,您的文件名就会变成(比如)
123.txt
。要做到这一点,您可以执行如下操作:
fname+=“.txt”在创建fstream对象之前

编辑:

下面是一个完整的/可编译的演示,使用VC++2012进行了测试:

#include <string>
#include <iostream>
#include <fstream>

int main() {

    int fnum;

    std::cout << "Please enter integer for file name: ";
    std::cin >> fnum;

    std::string fname = std::to_string(fnum);

    fname += ".txt";
    std::ofstream f(fname);
    f << "Contents";
}
#包括
#包括
#包括
int main(){
内特fnum;
std::cout>fnum;
std::string fname=std::to_string(fnum);
fname+=“.txt”;
流f(fname)的std::;

你能给我们看一下你代码的相关部分吗?字符串不是问题,我需要在引号内添加它。添加引号是我的主要目标。因此,当我保存文件时,它可以将其保存为int值(在“”标记内)@PJ_Boy你说的完全没有意义。我想你应该澄清你的问题。@juanchopanza c++11是否有转换运算符char*?@Koushik否,但有一个额外的构造函数,它接受
const std::string&
。请看。这种情况是:我用->of stream myfile;myfile.open(“文件名”)打开一个新的txt文件;但我希望使用用户输入的INT值保存文件。因此,我需要INT值在引号内..否则将出错occurs@PJ_Boy:您可能需要向我们显示代码和错误。我已经创建了文件名,例如
1.txt
,使用上面显示的代码没有任何问题。@PJ_男孩不,是的不需要引号之间的任何内容。这是一个XY问题。如何使用用户输入的int保存文件?@Jerry Coffin这正是我想要的,使用用户输入的int保存文件。我使用myfile.open(“文件名”);方法。这正是我想要的,先生。您能给我保存文件的代码,用户输入的int值+txt扩展名吗?
#include <string>
#include <iostream>
#include <fstream>

int main() {

    int fnum;

    std::cout << "Please enter integer for file name: ";
    std::cin >> fnum;

    std::string fname = std::to_string(fnum);

    fname += ".txt";
    std::ofstream f(fname);
    f << "Contents";
}