在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
}