带cin.getline()的char数组

时间:2013-06-10 05:52:17

标签: c++

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

cout << "Enter Album name: ";
cin >> CDdata[count].title;     
fout << CDdata[count].title;
问题是,当我输入带有空格的东西时,我的其余代码就搞砸了。

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

3 个答案:

答案 0 :(得分:5)

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

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

 cin.getline(CDdata[count].title, 1000, ',') //delimiter is changed to ','

如果您想要更正式的描述,请阅读here

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

答案 1 :(得分:1)

使用cin.getline()作为终止字符'\n',而不是空格。

答案 2 :(得分:0)

enter image description here

当cin.getline()将某些先前数据的bc转义为缓冲区中的某些内容时,我们可以使用cin.ignore()对其进行清理,从而在从缓冲区读取时逃脱了第一个字符