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

请教一个例题,非常简单,但我找不出毛病?

batman1 发布于 2009-11-14 22:59, 763 次点击

#include <iostream>
using namespace std;
int main()
{
char c1='C',c2='+',c3='+';
cout <<"I say:\""<<c1<<c2<<c3<<'\"';
cout <<"\t\t"<<"He says:\"C++ is very interesting!\"<<'\n';
return 0;
}
看看这段代码有什么问题吗,我自己觉得没啥问题了,可是在VC++6.0编译时总出现下面提示:
--------------------Configuration: liti7 - Win32 Debug--------------------
Compiling...
liti7.cpp
C:\Documents and Settings\Administrator\liti7.cpp(7) : error C2001: newline in constant
C:\Documents and Settings\Administrator\liti7.cpp(8) : error C2143: syntax error : missing ';' before 'return'
Error executing cl.exe.

liti7.obj - 2 error(s), 0 warning(s)

请教怎么回事?
6 回复
#2
whbah2009-11-14 23:21
"He says:\"C++ is very interesting!\"<<  
貌似这里多了个引号
#3
qlc002009-11-14 23:34
cout <<"\t\t"<<"He says:\"C++ is very interesting!\"<<'\n'//这个地方出错了,系统认为的是",在后面再加一个"就行了
正确的为cout <<"\t\t"<<"He says:\"C++ is very interesting!\""<<'\n'

[ 本帖最后由 qlc00 于 2009-11-14 23:37 编辑 ]
#4
modesiyu2009-11-14 23:53
cout <<"\t\t"<<"He says:\"C++ is very interesting!\"此处少了一个引号<<'\n'
#5
平凡不在2009-11-15 15:58
#include <iostream>
using namespace std;
int main()
{
char c1='C',c2='+',c3='+';
cout <<"I say:\""<<c1<<c2<<c3<<'\"';
cout <<"\t\t"<<"He says:\"C++ is very interesting!\""<<"\n";
return 0;
}
加了红色背景的就是我帮你改的;另外,说明一下,\是个转义字符,\"表示输出个"
#6
mengfp2009-11-16 11:18
注意转义符!最好不要用\n,用endl
#7
仇一败2009-11-16 19:29
cout <<"\t\t"<<"He says:\"C++ is very interesting!\""<<'\n';
即在后面加一个引号,因为系统默认的引号是成对出现的,若不加引号,则第一个引号是c++中输出字符的引用符,而第二个是相当于里面的字符,但是及时是字符,系统也是默认成对出现的,第二个引号,第三个引号是承接第二个引号的,若不加第四个引号,则引用符标志的引号就没有了承接符了,系统便会提示错误,在其后面加一个引号,承接的是第一个引号,此时才能表达完整。
1