谁能告诉我CPP这个问题是什么情况。。。

C++课程设计在第二个类要结束的时候加最后一个“}”,结果发现没法自动对齐。。。程序如下#include<iostream.h>#include<string.h>#include<fstream.h>#include<iomainp.h>class Book{private: char bookNo[20]; char bookName[20]; int Num;public: Book(char a[]="001",char b[]="cpp",int c=10) { strcpy(bookNo,a);strcpy(bookName,b);Num=c; } void Show() { cout<<bookNo<<setw(10)<<bookName<<setw(10)<<Num<<endl; } void Print(ofstream&out) { if(!outfile) { cout<<"can✀t open the file"; exit(1); } out<<bookNo<<setw(10)<<bookName<<setw(10)<<Num<<endl; } void setInfo(char *nop,char *nap;int n) { strcpy(bookNo,nop);strcpy(bookName,nap);Num=n; } void setNum(int n) { Num=n; } int getNum() { return Num; } friend class bookList;};class bookList{private: int curLen; int maxLen; Book *Books;public: bookList(int Len=20) { curLen=0; macLen=Len; if(Len) Books=new int[Len]; else Books=0; } ~bookList() { delete []Books; } void appendBooks(char *nop,char *nap,int n) { if(curLen=maxLen) { Book *newBooks; newBooks=new int[maxLen+10]; for(int i=0;i<curLen;i++) newBooks[i]=Books[i]; delete[maxLen]Books; maxLen+=10; Books=newBooks; } Books[curLen++].setInfo(nop,nap,n); } int isIn(char *bkNo) { for(int i=0;i<curLen;i++) { if (strcmp(Books[i].bookNo,bkNo)==0) return i; } return -1; } Book & getBooks(int i) { return Books[i]; } void deleteBook(char *bkNo) { int i; i=isIn(bkNo); if(curLen==0) cout<<"no books"<<endl; else { for(;i<curLen;i++) Books[i]=Books[i+1]; curLen-=1; cout<<"已删"<<endl; } }实在太长 只能出此下策。。。如果麻烦的话我可以发email ,就帮我看看后面“}”为什么不能对齐就行
2026年09月26日 14:11
有1个网友回答
网友(1):

加#include
将#include改成#include
将void setInfo(char *nop,char *nap;int n)改成void setInfo(char *nop,char *nap,int n)
将void Print(ofstream&out)改成void Print(ofstream &out)
并将该函数中if ( !outfile )改成if ( !out )
将macLen=Len;改成maxLen=Len;
将Books=new int[Len];改成Books=(Book *)new int[Len];
将newBooks=new int[maxLen+10];改成newBooks=(Book *)new int[maxLen+10];
将class bookList的反大括号和一个分号加在最后