来自tolower()c的双输出
然而,while起作用,最后“selezione”变量变为双变量,例如,通过插入FA,变量将变为faFA,这不允许if起作用。我知道有一个错误,但我找不到它,我不是那么好,所以你可以看到在我的名字不要侮辱我:)来自tolower()c的双输出,c,tolower,C,Tolower,然而,while起作用,最后“selezione”变量变为双变量,例如,通过插入FA,变量将变为faFA,这不允许if起作用。我知道有一个错误,但我找不到它,我不是那么好,所以你可以看到在我的名字不要侮辱我:) #包括 #包括 #包括 #包括 #包括 int main(){ int i=0; 双发,ce,ke; char-selezione[2]; printf(“米苏拉的斯凯利·勒尤塔:每华氏多少度\n每摄氏多少度\n每开尔文多少度”;//米苏拉的米苏拉单位 获取(selezione); wh
#包括
#包括
#包括
#包括
#包括
int main(){
int i=0;
双发,ce,ke;
char-selezione[2];
printf(“米苏拉的斯凯利·勒尤塔:每华氏多少度\n每摄氏多少度\n每开尔文多少度”;//米苏拉的米苏拉单位
获取(selezione);
while(selezione[i]){
putchar(tolower(selezione[i]);
i++;
}
puts(selezione);
如果(strcmp(selezione,“fa”)==0){
printf(“转化炉的华氏温度插入”);
扫描频率(“%lf”、&fa);
ce=(fa-32)/1.8;//换算为华氏一度
ke=((5/9.0)*(fa-32))+273.15;
printf(“%f华氏温度范围:\n%f摄氏梯度\n%f开尔文”,fa、ce、ke);
}
else if(strcmp(selezione,“ce”)==0){
printf(“在转换过程中的价格变化:”);
扫描频率(“%lf”、&ce);
fa=(ce*(9/5.0))+32;//换算为一摄氏度
ke=ce+273.15;
printf(“%f摄氏梯度sono:\n%f华氏\n%f开尔文”,ce,fa,ke);
}
else if(strcmp(selezione,“ke”)==0){
printf(“在瓦洛尔开尔文-达康沃尔镇上的插图”);
scanf(“%lf”、&ke);
fa=((ke-273.15)*(9/5))+32;//开尔文
ce=(ke-273.15);
printf(“%f开尔文声纳:\n%f华氏\n%f华氏摄氏度”,克、法、ce);
}
否则{
printf(“克拉特非riconosciuto,riprova”);
}
}
获取(selezione)代码>这将溢出2字符缓冲区<代码>put(selezione)代码>为什么?char selezione[2]代码>没有为两个字符后的空终止符提供足够的空间。使数组变大。char selezione[2];获取(selezione)由于数组太小,代码>将破坏某些内容。永远不要使用获取
,它不再是标准C库的一部分。请阅读puts(selezione)仅用于验证变量OK ty,我将尝试
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
int main(){
int i=0;
double fa,ce,ke;
char selezione[2];
printf("Scegli l'unita di misura da convertire:\n\n digita fa per fahrenheit\n digita ce per celsius \n digita ke per kelvin \n"); //selezione unità di misura
gets(selezione);
while (selezione[i]){
putchar(tolower(selezione[i]));
i++;
}
puts(selezione);
if (strcmp(selezione,"fa")==0) {
printf("Inserisci il valore fahrenheit da convertire: ");
scanf("%lf",&fa);
ce=(fa-32)/1.8; //conversione da fahrenheit
ke=((5/9.0)*(fa-32))+273.15;
printf("%f fahrenheit sono:\n%f gradi celsius\n%f kelvin",fa,ce,ke);
}
else if (strcmp(selezione,"ce")==0){
printf("Inserisci il valore celsius da convertire: ");
scanf("%lf",&ce);
fa=(ce*(9/5.0))+32; //conversione da celsius
ke=ce+273.15;
printf("%f gradi celsius sono:\n%f fahrenheit\n%f kelvin",ce,fa,ke);
}
else if (strcmp(selezione,"ke")==0){
printf("Inserisci il valore kelvin da convertire: ");
scanf("%lf",&ke);
fa=((ke-273.15)*(9/5))+32; //conversione da kelvin
ce=(ke-273.15);
printf("%f kelvin sono:\n%f fahrenheit\n%f fradi celsius",ke,fa,ce);
}
else {
printf("Carattere non riconosciuto, riprova");
}
}