6

在 c 中,我可以将换行分隔符 ([^\n]) 与 scanf 一起使用。使用它我可以存储线路。同样对于cin,我可以使用getline。

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

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

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

4

1 回答 1

14

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
}
于 2011-09-04T05:45:40.797 回答