C++ 有没有一种方法可以用“读取”来读取输入字符串;ifstream";
目前,我的程序将字符串作为输入,我使用C++ 有没有一种方法可以用“读取”来读取输入字符串;ifstream";,c++,string,file,format,ifstream,C++,String,File,Format,Ifstream,目前,我的程序将字符串作为输入,我使用argc和argv 然后我用 FILE *fp, *input = stdin; fp = fopen("input.xml","w+b"); while(fgets(mystring,100,input) != NULL) { fputs(mystring,fp); } fclose(fp); 我做这部分只是为了创建一个文件input.xml,然后将其提供给 ifstream in("input.xml")
argc和argv
然后我用
FILE *fp, *input = stdin;
fp = fopen("input.xml","w+b");
while(fgets(mystring,100,input) != NULL)
{
fputs(mystring,fp);
}
fclose(fp);
我做这部分只是为了创建一个文件input.xml,然后将其提供给
ifstream in("input.xml");
string s((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
ifstream-in(“input.xml”);
字符串s((std::istreambuf_迭代器(in)),std::istreambuf_迭代器();
将s
作为字符串(基本字符串)获取。
有没有办法将我的输入直接输入到
ifstream
?(即将字符串馈送到ifstream
)。让我直说:
string s(
(std::istreambuf_iterator<char>(std::cin)),
std::istreambuf_iterator<char>()
);
字符串s(
(std::istreambuf_迭代器(std::cin)),
std::istreambuf_迭代器()
);
请记住,std::cin
是一个std::istream
,标准库的IOStreams部分是为这种数据的通用访问而设计的
但是,请注意,如果您正在读取大量数据,这可能是一个问题。如果我没有弄错,那么您希望将通过标准输入提供的所有文本读取到字符串中 实现这一点的一个简单方法是使用
std::getline
,它将特定分隔符之前的所有字节读入字符串。如果您可以假定它是文本内容(不包含任何\0
-字符),则可以编写以下内容:
std::string s;
std::getline(cin,s,'\0');
否,
ifstream
设计用于读取文件。如果要将std::string
作为istream
提供,则可以使用。完全不清楚您要的是什么。您是将字符串作为程序的参数读取,还是将文件内容读入std::string
?在下面的回答中,我完全忽略了您提到的argc
和argv
,这似乎毫无意义。@user0042我将其作为程序的参数获取。