【发布时间】:2010-03-27 17:19:16
【问题描述】:
我制作了这个程序::
#include<stdio.h>
char *raw_input(char *msg);
main() {
char *s;
*s = *raw_input("Message Here Is: ");
printf("Return Done..");
printf(s);
}
char *raw_input(char *msg){
char *d;
printf("%s", msg);
scanf("%s",&d);
return d;
}
这是做什么的,它打印我的消息并扫描用户的输入,然后打印它,但是打印用户输入的问题是什么???
更新::
我需要 raw_input 函数。调用是这样的,没有任何额外的
*s = *raw_input("Message Here");
我不想用这个 ::
raw_input("Message Here Is: ", d);
....
只想返回用户将输入的字符串。
更新2::
来自 jamesdlin 的回答(谢谢),现在我很清楚,我的问题是如何在此返回分配的字符串 :)
#include<stdio.h>
#define buffer 128
char *raw_input(char *msg);
main() {
char *s;
s = raw_input("Message Here Is: ");
printf("%s\n",s);
}
char *raw_input(char *msg){
char *d;
printf("%s", msg);
fflush(stdout);
fgets(d, buffer, stdin); ## In this there is a problem
return d;
}
现在,当我启动这个程序时,它会打印消息,然后退出(结束)程序而不从用户那里获取任何信息???
【问题讨论】:
标签: c function pointers printf