如何为cin提供自己的分隔符?

在c中,我可以在scanf中使用换行符([^ n])。 使用我可以存储的行。 同样,对于cin,我可以使用getline。

如果我必须存储段落,我可以使用我自己的特殊字符分隔符来模拟功能,如[^#]或[^ t],并在c中使用scanf函数。

char a[30];
scanf("%[^#]",a);
printf("%s",a);

如何在cpp中实现与cin对象类似的功能。

谢谢你的时间。


istream.getline可以让你指定一个使用deliminator来代替默认的'n'

cin.getline (char* s, streamsize n, char delim );

或者更安全更简单的方法是使用std :: getline。 使用这种方法,您不必担心分配足够大的缓冲区以适合您的文本。

string s;
getline(cin, s, 't');

编辑:

就像一个侧面说明,因为它听起来像你只是在学习c ++,阅读多条分隔线的正确方法是:

string s;
while(getline(cin, s, 't')){
    // Do something with the line
}
链接地址: http://www.djcxy.com/p/5389.html

上一篇: How to provide your own delimeter for cin?

下一篇: How do you read from stdin in Python?