在 c 中,我可以将换行分隔符 ([^\n]) 与 scanf 一起使用。使用它我可以存储线路。同样对于cin,我可以使用getline。
如果我必须存储一个段落,我可以使用我自己的特殊字符分隔符来模拟功能,例如 [^#] 或 [^\t] 以及 c 中的 scanf 函数。
char a[30];
scanf("%[^\#]",a);
printf("%s",a);
如何在 cpp 中实现与 cin 对象类似的功能。
在 c 中,我可以将换行分隔符 ([^\n]) 与 scanf 一起使用。使用它我可以存储线路。同样对于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
}