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



在c中,我可以在scanf中使用换行分隔符([^n])。我可以用它来存储行。类似地,对于cin,我可以使用getline.

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

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

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

istream。getline允许您指定要使用的分隔符而不是默认的'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
}

相关内容

  • 没有找到相关文章

最新更新