尽管我知道该程序的布局很麻烦,但我认为我的程序在scanf()
行中遇到了麻烦。由于某种原因,在输入metricConversion()
函数之后。 scanf()
行已打印,但是程序在输入之前退出并终止...我不明白为什么会这样...
#include <stdio.h>
char inputtedChar;
int inputtedInt;
int metricConversion(){
scanf("Press K for conversion from Kelvin to Celsius %c", &inputtedChar);
if(inputtedChar == 'K'){
//do Something
} else { return 0; }
}
int main() {
printf("Press 0 to enter conversion function!");
scanf("%d", &inputtedInt);
if (inputtedInt == 0) {
metricConversion();
}
}
更重要的是,有人可以解释为什么scanf()
如此运作吗?最好的选择是什么,这样我就不会再遇到这个问题了?
答案 0 :(得分:3)
将if ($hits[0]<= $varlinkhits)
{
$buttonlink="$varlinkone";
}
else
{
$buttonlink="$varlinktwo";
}
?>
<?php
//creating short code
?>
<button onclick="onclickRedirect()">redirect</button>
<script>
function onclickRedirect(){
window.location.href = "<?php echo $buttonlink ?>";
}
</script>
<?php
}
session_start();
function link_button_function() {
global $buttonlink;
$_SESSION["sessionlink"] = $buttonlink;
return '<a href=" '. $_SESSION["sessionlink"] .' ">Join Whatsapp Group</a>';
}
add_shortcode('button_link', 'link_button_function');
更改为:
scanf("Press K for conversion from Kelvin to Celsius %c", &inputtedChar);
有两个问题。使用printf("Press K for conversion from Kelvin to Celsius ");
fflush(stdout);
scanf(" %c", &inputtedChar);
/* ^ */
/* this space */
进行提示。并且您需要在printf
,scanf
(扫描集)或%c
转换之前使用%[…]
中的空格来忽略空格。使用%n
将确保在等待输入之前将提示打印在屏幕上。
除非您要用fflush
终止打印的字符串,否则也建议在fflush
函数的scanf
之前使用main
。
'\n'
是什么意思?
这不会打印任何内容。这意味着程序需要精确的输入scanf("Press K for conversion from Kelvin to Celsius %c", &inputtedChar);
并在输入中读取Press K for conversion from Kelvin to Celsius <SOME_CHAR>
。有关更多详细信息,您需要了解正则表达式。