如何从键盘输入字符串(带空格)到一个字符指针(char *)?

raul198007 2003-04-29 05:17:55
如题
...全文
405 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xabcxyz 2003-05-01
  • 打赏
  • 举报
回复
gets 函数结束标志为回车换行。
scanf 函数结束标志为空白(空格 分隔符 回车换行)
kahn 2003-05-01
  • 打赏
  • 举报
回复
getline
yunyun820930 2003-05-01
  • 打赏
  • 举报
回复
char *p,a[];
p=a;
scanf("%s",p);
这样就行了~~~~用指针p以前~p的指向不能为空的~~`
老谭的书专门讲过这个细节的~~~~~~~
!!!!!加分~~~~~~~~~~~~
短歌如风 2003-04-30
  • 打赏
  • 举报
回复
正规方法:
#include <string>
#include <iostream>
using namespace std;
main
{
string str;
getline(cin, str)
}
以回车结束,既不限制输入长度,又没有越界访问。
hold2001 2003-04-30
  • 打赏
  • 举报
回复
这个你也问,说明你根本就不看书,学好一门语言就得系统的看几本好书,你这样这么简单的也问别人,不在书上进行全面的了解是很难学好的!!!
shishiXP 2003-04-30
  • 打赏
  • 举报
回复
#include <iostream.h>

char buf[100];
cin.get(buf,100);
while(cin.get!='\n');

加分!!!!!!!!!!!
yyfzy 2003-04-30
  • 打赏
  • 举报
回复
光char * str=new char;
不分配存储区是不行的,读入的字符没地方放啊
fengyuntianxia 2003-04-30
  • 打赏
  • 举报
回复
说的对char * str=new char;
短歌如风 2003-04-30
  • 打赏
  • 举报
回复
我没在VC6中试过,如果真是这样,可能是VC的Bug.
不过你可以去下载一套新的STL库替换掉VC自带的STL试试(替换前先备份,万一通不过还可以恢复回来)。建议使用STLport。
SwordMan2001 2003-04-30
  • 打赏
  • 举报
回复
>plainsong(伤心的风★短歌)

有一个很奇怪的现象不知 你是否注意过:
在VC6下, 用上面的代码运行时, 要打两次回车才可以

如果用 getline(cin, str, 'a');
即改成用'a'结束, 则只要打一次回车即可

另外,在其它编译器中(如BCB6), 是没有要打两次回车这样现象的.
ghtsao 2003-04-29
  • 打赏
  • 举报
回复
不能事先定义字符数组的长度,只能这样char * str=new char;
谢谢

------------------------------------------------------
这那行,没缓冲区那里存。
raul198007 2003-04-29
  • 打赏
  • 举报
回复
不能事先定义字符数组的长度,只能这样char * str=new char;
谢谢
ninesong 2003-04-29
  • 打赏
  • 举报
回复
string
微笑的撒旦 2003-04-29
  • 打赏
  • 举报
回复
char *szChar = new char[100];
cin >> szChar;

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧