C 结构体
#include <stdio.h>#include <string.h>
char * s_gets(char * st,int n);
#define MAXTITL 41
#define MAXAUTL 31
struct book
{
char title;
char author;
float value;
};
int main()
{
struct book library;//library 为struct book 型变量;
printf("请输入书名:\n");
s_gets(library.title,MAXTITL);
printf("现在输入作者:\n");
s_gets(library.author,MAXAUTL);
printf("现在输入价格:\n");
scanf("%f",&library.value); /*问题1--程序运行到这里就崩溃了。。*/
printf("%s by %s is %.2f\n",library.title,library.author,library.value);
printf("Done\n");
return 0;
}
char * s_gets(char * st,int n)
{
char * ret_val;
char * find;
ret_val= fgets(st,n,stdin); /*问题2---stdin是什么意思*/
if (ret_val)
{
find = strchr(st,'\n');
if (NULL)
{
*find = '\n';
}
else
{
while (getchar()!='\n')
{
continue;
}
}
}
return ret_val;
} 问题一我也不知道,我运行没事,用clang编译。问题二stdin大概是标准库输入的意思。 stdin 从键盘接收输入
stdin是标准输入,一般指键盘输入到缓冲区里的东西
至于问题1,检查看你用的什么编译器,输入是否合法。 xhzzzloveyou 发表于 2018-8-25 18:54
问题一我也不知道,我运行没事,用clang编译。问题二stdin大概是标准库输入的意思。
请问你输出的有书的价格吗?我的没有。我用的VS2012. 海绵爱上星 发表于 2018-8-25 23:25
请问你输出的有书的价格吗?我的没有。我用的VS2012.
有,我输出的是:
《xxx》
by xxx
is 666.67
Done
xhzzzloveyou 发表于 2018-8-26 07:30
有,我输出的是:
你建的是c还是c++? 海绵爱上星 发表于 2018-8-26 14:06
你建的是c还是c++?
C
页:
[1]