读书人

关于coutlt;lt;p;有关问题

发布时间: 2012-04-14 17:14:21 作者: rapoo

关于cout<<*p;问题
#include <iostream>
#include <string>
using namespace std;
int main()
{
char *p=new char[];

while(cin>>*p)
{
cout<<*p<<endl;
}
return 0;
}
本意是输入一行输出一行,但是
hell
h
e
l
l
把<<endl删去可得到hell,求解释;

[解决办法]
这个 首先是你cin的不对,你现在是一个字符一个字符的读取,你可以改成如下:

C/C++ code
#include <iostream>#include <string>using namespace std;int main(){char *p=new char[100];while(cin>>p){cout<<p<<endl;}return 0;}
[解决办法]
char *p
*p是一个char字符数组的第一个字符
至于p为什么输出的字符串,我也有这个疑问哈~
[解决办法]
改下程序:
#include <iostream>
#include <string>
using namespace std;
int main()
{
char *p=new char [10];

while(cin>>*p)
{
cout<<*p;

cout<<1;
}


return 0;
}

输入abcd,按enter后得到a1b1c1d1。个人觉得:cin输入的abcd放到输入流中,按下enter后,流中数据依次
送向*p,依次输出。并没有得到字符串,只是得到了abcd四个字符,并且都送给*p。

再改下程序:
#include <iostream>
#include <string>
using namespace std;
int main()
{
char *p=new char [10];

while(cin>>*p)
{
cout<<*p;

cout<<1;
}

cout<<*p<<endl;


return 0;
}

输入abcd,enter后得到a1b1c1d1,ctrl+z后的d我想我的猜想是正确的

读书人网 >C++

热点推荐