這裏的時候,一個奇怪的錯誤是代碼試圖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。 「奇怪」 - >運行時失敗。 「非奇怪」 - >編譯錯誤。只是我的兩分錢。 :) –
'如果(情況==「靈魂」)'比較字符串*位置*不是他們的內容。只有當編譯器被配置爲共享而不是重複的,相等的字符串文字時,纔會出現這種情況。 –