-4
我寫下了下面的代碼。問題是這樣的:在我從輸入流中讀取x
和y
之後沒有什麼問題 - 意思是x
和y
是輸入的確切值 - 但後來他們改變爲其他值。爲什麼我的int在C++程序中間改變了?
這是怎麼回事?我不明白!!
int count(char s[], char ss[] , long long int posF, long long int posE){}
int main()
{
char s[]{};
int q = 0;
cin >> s;
cin >> q;
int choise = 0;
while(q--)
{
cin>>choise;
if(choise == 1)
{
int x = 0;
cin>>x;
char c;
cin>>c;
s[x-1] = c;
}
else if(choise == 2)
{
int x = 0;
int y = 0;
cin>>x>>y;
//Fist LOG
cout<<"First log x and y are correct "<<x<<" "<<y<<endl;
char ss[]{};
cin>>ss;
//Second LOG
cout<<"Second log x and y are wrong?Why?"<<x<<" "<<y;
cout<<count(s, ss, x-1, y-1)<<endl;
}
}
return 0;
}
'個char [] {};'和'炭SS [ ] {};'不合法的C++。即使你的編譯器提供了允許的擴展,cin >> s;和cin >> ss幾乎肯定是未定義的行爲。 –
答案很簡單:未定義的行爲。很可能是由於將數組引用超出了數組的範圍。 –
我不知道你想用'char ss [] {}來做什麼; cin >> ss;'但我敢肯定它的錯誤。 – Borgleader