This question already has answers here:
Closed 4 years ago.
segmentation fault using scanf with integer
(2个答案)
我正在制作一种有趣的新编程语言,当我键入'print+:'时,我将插入Pfunc1plus和Pfunc2plus,当您注册这两个抛出数时,会出现错误“程序已停止工作…”
您有两个整数格式说明符,但只传递一个参数(
(2个答案)
我正在制作一种有趣的新编程语言,当我键入'print+:'时,我将插入Pfunc1plus和Pfunc2plus,当您注册这两个抛出数时,会出现错误“程序已停止工作…”
#include <stdio.h>
#include <stdlib.h>
int main(){
char sysF[300];
char Pfunc[300];
int Pfunc1plus; int Pfunc2plus;
scanf("%s",sysF);
// Print
if (strcmp(sysF, "print:") == 0){
scanf("%s",Pfunc);
system("cls");
printf("%s",Pfunc);
}
// Error code
if(strcmp(sysF, "print+:") == 0) {
scanf("%i %i",Pfunc1plus,Pfunc2plus);
printf("%i %i",Pfunc1plus+Pfunc2plus);
} // Error code
system("pause >nul");
return 0;
}
最佳答案
两件事:
scanf("%i %i",Pfunc1plus,Pfunc2plus);
scanf
将地址传递给变量,因此您需要在&
和Pfunc1plus
前面放置一个运算符(Pfunc2plus
)的地址。printf("%i %i",Pfunc1plus+Pfunc2plus);
您有两个整数格式说明符,但只传递一个参数(
Pfunc1plus+Pfunc2plus
)。如果要同时打印,请将加法运算符更改为逗号;如果实际要打印和,请删除%i
。08-26 14:23