繁体   English   中英

C ++-连接字符串(如PHP?)

[英]C++ - Concatenating strings (like PHP?)

我环顾四周,但找不到一个好的答案。

我有这样的文件: text1.txt text2.txt text3.txt

用户想要指定要打开的文件:

int x;
string filename;
cout << "What data file do you want to open? (enter an int between 1 -> 3): ";
cin >> x;
filename = "P3Data" << x << ".txt" ; //does not compile

myfile.open(filename);

正确的方法是什么?

要使用流接口,您需要一个stringstream

std::ostringstream filename;
filename << "P3Data" << x << ".txt";

myfile.open( filename.str().c_str() );

否则,您可以使用+连接两个strings

在C ++ 11中,您可以这样说:

#include <string>

const std::string filename = std::string("P3Data") + std::to_string(x) + std::string(".txt");

如果没有C ++ 11,则可以使用boost::lexical_cast或字符串流或snprintf 另外,您也可以从std::cin读入字符串而不是整数。

(如果读取为整数,请使用条件检查将读取括起来以验证操作: if (!(std::cin >> x)) { /* error! */ }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM