带cin.getline()的char数组

Lev*_*rch 2 c++

我正在做一个我们不允许使用字符串的赋值,我们必须使用char数组.这是我的代码:

cout << "Enter Album name: ";
cin >> CDdata[count].title;     
fout << CDdata[count].title;
Run Code Online (Sandbox Code Playgroud)

问题是,当我输入带有空格的东西时,我的其余代码就搞砸了.

如何获得它以便我可以输入带有空格的东西?

vid*_*dit 5

使用cin.getline(CDdata[count].title, 1000).第二个参数是char数组的长度CData[count].title.

上面的函数要么读取1000个字符,要么直到找到一个分隔符,默认情况下是一个换行符(\n),但可以按如下方式更改.

 cin.getline(CDdata[count].title, 1000, ',') //delimiter is changed to ','
Run Code Online (Sandbox Code Playgroud)

如果您想要更正式的描述,请阅读此处.

PS:我使用了1000,第二个参数作为占位符.你应该相应地改变它.

  • 从之前的一些`cin`中可能还有一个新的缓冲区.您可以在`cin.getline()`之前执行`cin.ignore()`,它将从流中删除它. (2认同)