+ -
当前位置:首页 → 问答吧 → c++ 很菜的问题 刚学 不懂

c++ 很菜的问题 刚学 不懂

时间:2011-12-08

来源:互联网

#include "stdafx.h"
#include <iostream.h>
#include <string>
int main()
{
string line;
while (getline(cin, line))
cout << line << endl;
return 0;
}

上面是代码 : 报错如下:
D:\VC++\test\lei\lei.cpp(9) : error C2065: 'string' : undeclared identifier
D:\VC++\test\lei\lei.cpp(9) : error C2146: syntax error : missing ';' before identifier 'line'
D:\VC++\test\lei\lei.cpp(9) : error C2065: 'line' : undeclared identifier
D:\VC++\test\lei\lei.cpp(10) : error C2065: 'getline' : undeclared identifier
Error executing cl.exe.

大侠们 给个解释 谢谢了。。。

作者: riskyvall1   发布时间: 2011-12-08

C/C++ code

#include "stdafx.h"
#include <iostream.h>
#include <string>
using namespace std; // 加上这条语句,打开命名空间即可
int main()
{
string line;
while (getline(cin, line))
cout << line << endl;
return 0;
}



作者: seucs   发布时间: 2011-12-08

楼上正解

作者: zjazja1234   发布时间: 2011-12-08

楼上得哥 什么是打开命名空间 是不是在vc++里面设置什么,我加了using namespace std;
还是报错:
D:\VC++\test\lei\lei.cpp(11) : error C2780: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &,const _E)' : expects 3 arguments - 2 provided
  c:\program files\microsoft visual studio\vc98\include\string(149) : see declaration of 'getline'
D:\VC++\test\lei\lei.cpp(11) : error C2784: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &)' : could not deduce template argument for 'class std::basic_istream<_E,_Tr> 
&' from 'class istream_withassign'
D:\VC++\test\lei\lei.cpp(11) : error C2784: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &)' : could not deduce template argument for 'class std::basic_istream<_E,_Tr> 
&' from 'class istream_withassign'
D:\VC++\test\lei\lei.cpp(11) : error C2784: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &)' : could not deduce template argument for 'class std::basic_istream<_E,_Tr> 
&' from 'class istream_withassign'
D:\VC++\test\lei\lei.cpp(11) : fatal error C1903: unable to recover from previous error(s); stopping compilation
Error executing cl.exe.

作者: riskyvall1   发布时间: 2011-12-08

名称空间是C++语言的内容,和平台无关。

作者: lelewei   发布时间: 2011-12-08

还是不行啊!
引用 1 楼 seucs 的回复:
C/C++ code

#include "stdafx.h"
#include <iostream.h>
#include <string>
using namespace std; // 加上这条语句,打开命名空间即可
int main()
{
string line;
while (getline(cin, line))
cout << line << endl;
re……

作者: riskyvall1   发布时间: 2011-12-08

你把
#include <iostream.h>
中的.h去掉试一下

作者: lelewei   发布时间: 2011-12-08

C/C++ code

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
    string line;
    while (getline(cin, line))
    cout << line << endl;
    return 0;
}






引用 5 楼 riskyvall1 的回复:

还是不行啊!
引用 1 楼 seucs 的回复:
C/C++ code

#include "stdafx.h"
#include <iostream.h>
#include <string>
using namespace std; // 加上这条语句,打开命名空间即可
int main()
{
string line;
while (getline(cin, line)……

作者: lelewei   发布时间: 2011-12-08

是不报错了!就是没有DOS界面 跳出来让我输入字符串 在输出字符串 WHY????
C/C++ code

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
string line;
while (getline(cin, line))
cout << line << endl;
return 0;

}


引用 6 楼 lelewei 的回复:
你把
#include <iostream.h>
中的.h去掉试一下

作者: riskyvall1   发布时间: 2011-12-08

你用的是VC6。0?我用的VC 6.0 没问题。。。

引用 8 楼 riskyvall1 的回复:

是不报错了!就是没有DOS界面 跳出来让我输入字符串 在输出字符串 WHY????
C/C++ code

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
string line;
while (getline(cin, line))
cout << li……

作者: lelewei   发布时间: 2011-12-08