作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
程序应该重复询问书名和编号,直到用户输入书名“end”
,之后程序应该停止。
但是当我在第一个输入循环之后运行程序时,第二个循环之后的行为非常奇怪,我没有机会输入书名或结束程序。我尝试使用 fgets
但也不起作用。它确实工作得更好一些,但在第二个循环中,它会打印两个打印语句,然后要求输入。
int main()
{
int i, j, temp, bk_no[20], lib_size = 0;
char bk_name[20], end[3]="end";
printf("\n===========ACCESSING LIBRARY===========\n\n (Type end to close the library)\n");
while ( lib_size < sizeof bk_no/sizeof bk_no[0] ) //while lib_size<20->(20*4)/4
{
printf("\nWhat is the name of the book?\n");
scanf_s("%s", &bk_name);
if ( strcmp(bk_name, end)==0 )
break;
printf("What is the books number in the series?\n");
scanf_s("%d", &bk_no[lib_size]);
if ( bk_no[lib_size]==-1 )
break;
lib_size++;
}
}
最佳答案
end[3]
应该是end[4]
... 占 '\0'
在字符串的末尾。
scanf_s()
应传递 "%s"
的大小参数,您使用它就像使用 scanf()
一样而不是scanf_s()
read the documentation .
您正在将数组的地址传递给 scanf_s()
两者都是错误的,scanf_s()
和scanf()
.
数组会自动指向其在此上下文中的第一个元素,因此您不需要 &
将 1 传递给 scanf()
的运算符地址.
希望有帮助。
关于c - 我试图让这个程序询问书名和编号,但 while 循环有些不对劲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070146/
Book_title Table +---------------+-------------------+ | isbn | title | +------
如何删除 PHP 中的所有 HTML 标记,除了 <>人物? //There's other HTML tags, like h1, div, etc. echo strip_tags(' a hot
我是一名优秀的程序员,十分优秀!