这里的时候,一个奇怪的错误是代码试图SCANF成全球INT
#include "stdafx.h"
#include <string>
#include <clocale>
#include <stdio.h>
#include <cstdlib>
using namespace std;
int souls;
void userInput(char situation[20]) {
if (situation == "souls") {
scanf("%i", souls);
printf("%i", souls);
}
}
void main() {
setlocale(LC_CTYPE, "rus");
userInput("souls");
system("pause");
}
它刹车后,我输入的东西我scanf()
(试图改变全球int
)通过控制台(INT数量例如)并丢弃我为“未处理的异常”
为什么会这样呢?我使用MS Visual Studio 2005中
#offtopic:你是如何 “奇怪” 的区分和“不奇怪”的错误? –
@EugeneSh。 “奇怪” - >运行时失败。 “非奇怪” - >编译错误。只是我的两分钱。 :) –
'如果(情况==“灵魂”)'比较字符串*位置*不是他们的内容。只有当编译器被配置为共享而不是重复的,相等的字符串文字时,才会出现这种情况。 –