文字シーケンスの最後に2つの数字をとり、整数として出力するC++コード(find.cpp)があります。関数はすべての入力で0を返します。
find.cpp:
#include <iostream>
#include "find_num.h"
int main() {
char test[6] = { 't', 'e', 's', 't', '4', '2' };
std::cout << find_num(test) << std::endl;
}
find_num.h:何らかの理由で
#include <sstream>
int find_num(char char_in[]) {
char char_out[2];
int out;
for (int i = 0, end = true; end!=false; i++) {
if (char_in[i] == 0) {
for (int j = 0; j < 2; j++) {
char_out[j] = char_in[i - 2 + j];
}
std::stringstream(char_out) >> out;
end = false;
}
}
return out;
}
、私はコンパイルしfind.cppを実行したとき、私はそれを期待されるものの、それは常に、0を出力しますどのように私はこれを修正することができますか?ありがとう!
あなたは*スクリプトを持っていないと、あなたは* * '.cpp'ファイルを実行しないでください:
以上を:あなたが欲しいです。 – LogicStuff
私のコンパイラ(Dev C++)で動作し、42を出力します。これはコンパイラに関係するかもしれません。 –
@Kemal彼のコンパイラとは関係ありません。 –