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

字符串输入问题

xiangjimiao 发布于 2006-10-06 17:00, 903 次点击

#include"iostream.h"
#include"stdio.h"
void main()
{ int i=0;
char*aa=new char();
char*tmp=new char();
while(1)
{
cin>>*(tmp+i);
if(*(tmp+i)=='\r')
break;
*(aa+i)=*(tmp+i);
i++;

}

}



想要连续输入一个字符串 回车跳出 写了上面代码好像不行 哪位大侠帮帮忙; 感激不尽~~~

6 回复
#2
wfpb2006-10-06 17:30

#include"iostream.h"
#include <vector>
#include"stdio.h"
void main()
{ int i=0;
vector<char>aa;
vector<char>tmp;
while(1)
{
char ch;
cin>>ch;
if(*ch=='\r')
break;
aa.push_back(ch);
tmp.push_back(ch);
}
}

#3
xiangjimiao2006-10-08 12:44

最后用getchar()试了一下发现可以
ch=getchar();
char*cp=new char;
while((int)ch!=10)
{
*(cp+i++)=ch;
ch=getchar();
}

#4
★红狼2006-10-08 15:23

用scanf("%s",ch);什么问题都没有。

#5
wfpb2006-10-08 16:33
不管行不行,这都是很危险的,你用new只分配了一个内存,在它(分配的内存)后面是不应该被使用的,对它进行写操作是可怕的。
#6
show_12006-10-15 20:44
同意上楼的说法 在对一个指针只分配相对不足的内存的情况下是很危险的 就比如给数组赋值超过范围一样的
#7
zhou2008-03-30 17:41
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
1