c++程序出现错误,为什么输入的每个信息的第一个字母总是不能保存在文件里面。。求助??

#include<iostream>usingnamespacestd;#include<fstream>voidmain(){charPBookBarCode[20];... #include<iostream>
using namespace std;
#include<fstream>
void main()
{
char PBookBarCode[20];
char PBookName[20];
char PFirstAuthorName[20];
char POtherAuthorName[20];
char PBookType[20];
char PBookPosition[20];
char PPublishUnit[20];
char PPublishTime[20];
char PPrice[20];
cout<<"teacher input book"<<endl;
ofstream BookFile("book.txt",ios::out|ios::app);
cout<<"Please enter Book information:"<<endl;
cout<<"Book Tiaoxingma:"<<endl;
cin.ignore();
cin.getline(PBookBarCode,20);
BookFile<<PBookBarCode<<endl;
cout<<"Book Name:"<<endl;
cin.ignore();
cin.getline(PBookName,20);
BookFile<<PBookName<<endl;
cout<<"First Author Name:"<<endl;
cin.ignore();
cin.getline(PFirstAuthorName,20);
BookFile<<PFirstAuthorName<<endl;
cout<<"OtherAuthorName:"<<endl;
cin.ignore();
cin.getline(POtherAuthorName,20);
BookFile<<POtherAuthorName<<endl;
cout<<"Book sort code:"<<endl;
cin.ignore();
cin.getline(PBookType,20);
BookFile<<PBookType<<endl;
cout<<"Book position:"<<endl;
cin.ignore();
cin.getline(PBookPosition,20);
BookFile<<PBookPosition<<endl;
cout<<"publish Unit:"<<endl;
cin.ignore();
cin.getline(PPublishUnit,20);
BookFile<<PPublishUnit<<endl;
cout<<"publish time:"<<endl;
cin.ignore();
cin.getline(PPublishTime,20);
BookFile<<PPublishTime<<endl;
cout<<"price:"<<endl;
cin.ignore();
cin.getline(PPrice,20);
BookFile<<PPrice<<endl;
cout<<"input success!!!\n";
BookFile.close();
}
展开
 我来答
灰121灰
2014-01-02 · 超过18用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:43万
展开全部
ignore() 函数像read()一样读字符,但它并不将读入的字符存放到任何地方(丢弃)。它也像read()一样能实际读n个字符(而不是n-1个)。有ignore()读入的字符的个数默认为1,所以,不用参数调用ignore()就意味着“丢掉下一个字符”。ignore()也可以用一个结束符,在读入中遇到这个结束符时,也将它从输入流中删除,ignore的默认结束符是文件结束。
以上是别人的解答,应该是cin.ignore()丢弃了第一个字符
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式