关于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的不对,你现在是一个字符一个字符的读取,你可以改成如下:
#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我想我的猜想是正确的