注册 登录
编程论坛 C++教室

是不是编译器有问题呢

kidd2005 发布于 2008-01-11 20:19, 851 次点击
#include<iostream>
#include<cassert>
using namespace std;

void dename(const string& fullname,string& firstname,
                  string& middlename,string& lastname);
                  
int main()
{
    cout<<"enter a fullname:";
    string fullname;
    getline(cin,fullname);
    string fname,mname,lname;
    dename(fullname,fname,mname,lname);
   
    cout<<fname<<endl;
    cout<<mname<<endl;
    cout<<lname<<endl;
}

#include<cassert>
using namespace std;

void dename(const string& fullname,string& firstname,
                  string& middlename,string& lastname);
{
     int firstblankindex=fullname.find(' ',0);
     assert(firstblankindex!=string::npos);
     firstname=fullname.substr(0,firstblankindex);
     
     int secondblankindex=fullname.find(' ',firstblankindex+1);
     assert(secondblankindex!=string::npos);
     middlename=fullname.substr(firstblankindex+1,
                          secondblankindex-firstblankindex+1);
     
     int fullnamesize=fullname.size();
     lastname=fullname.substr(secondblankindex+1,
                          fullnamesize-secondblankindex-1);

这是书上的一个例题,但不知道为什么总是过不了编译,
只有本站会员才能查看附件,请 登录
是不是编译器有问题呢??
6 回复
#2
linsua2008-01-12 11:20
1.编译器出问题的概率比你出问题的概率还要低。
2.你这个例题貌似是2个文件。
3.最后好像少了一个大括号。
#3
zjl1382008-01-12 14:39
少了#INCLUDE<STRING>
多了分号少了大括号;
你再编译一下!!!
#4
kidd20052008-01-12 17:26
最后少大括号是我复制时陋了~
我去掉了25行的分号通过了,
但运行时,我输入后再ENTET却消失了~没结果啊
#5
linsua2008-01-12 17:39
真不知道你的积分是哪里混来的
main函数的最后加上一句:
system("pause");
#6
忘记喧嚣2008-01-12 18:04
你的 main 少了个return 0;
#7
忘记喧嚣2008-01-12 18:06
#include<iostream>
#include<string>
using namespace std;

void dename(const string& fullname,string& firstname,
                  string& middlename,string& lastname);
                  
int main()
{
    cout<<"enter a fullname:";
    string fullname;
    getline(cin,fullname);
    string fname,mname,lname;
    dename(fullname,fname,mname,lname);
   
    cout<<fname<<endl;
    cout<<mname<<endl;
    cout<<lname<<endl;
return 0;    
}
   
#include<cassert>
using namespace std;

void dename(const string& fullname,string& firstname,
                  string& middlename,string& lastname)
{
     int firstblankindex=fullname.find(' ',0);
     assert(firstblankindex!=string::npos);
     firstname=fullname.substr(0,firstblankindex);
     
     int secondblankindex=fullname.find(' ',firstblankindex+1);
     assert(secondblankindex!=string::npos);
     middlename=fullname.substr(firstblankindex+1,
                          secondblankindex-firstblankindex+1);
     
     int fullnamesize=fullname.size();
     lastname=fullname.substr(secondblankindex+1,
                          fullnamesize-secondblankindex-1);
}

分号多了  return 0;少了 听他们的加了个  string
1