使用 std::cout 写入文件时的额外输出
Extra output when writing to file using std::cout
我正在尝试从文件 in.txt
中读取数据,经过一些计算后,我将输出写入 out.txt
为什么out.txt
后面多了一个7?
Solution
class.
的内容
class Solution
{
public:
int findComplement(int num)
{
int powerof2 = 2, temp = num;
/*
get number of bits corresponding to the number, and
find the smallest power of 2 greater than the number.
*/
while (temp >> 1)
{
temp >>= 1;
powerof2 <<= 1;
}
// subtract the number from powerof2 -1
return powerof2 - 1 - num;
}
};
main
函数的内容。
假设包含所有 headers。 findComplement
翻转数字的位。例如,整数5用二进制表示为“101”,其补码为“010”,即整数2。
int main() {
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
// helper variables
Solution answer;
int testcase;
// read input file, compute answer, and write to output file
while (std::cin) {
std::cin >> testcase;
std::cout << answer.findComplement(testcase) << "\n";
}
return 0;
}
in.txt
的内容
5
1
1000
120
out.txt
的内容
2
0
23
7
7
多出 7 的原因是你的循环执行了太多次。您需要在 std::cin
尝试读取输入后检查。
原样,您只需重复最后一个测试用例。
我正在尝试从文件 in.txt
中读取数据,经过一些计算后,我将输出写入 out.txt
为什么out.txt
后面多了一个7?
Solution
class.
的内容
class Solution
{
public:
int findComplement(int num)
{
int powerof2 = 2, temp = num;
/*
get number of bits corresponding to the number, and
find the smallest power of 2 greater than the number.
*/
while (temp >> 1)
{
temp >>= 1;
powerof2 <<= 1;
}
// subtract the number from powerof2 -1
return powerof2 - 1 - num;
}
};
main
函数的内容。
假设包含所有 headers。 findComplement
翻转数字的位。例如,整数5用二进制表示为“101”,其补码为“010”,即整数2。
int main() {
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
// helper variables
Solution answer;
int testcase;
// read input file, compute answer, and write to output file
while (std::cin) {
std::cin >> testcase;
std::cout << answer.findComplement(testcase) << "\n";
}
return 0;
}
in.txt
的内容
5
1
1000
120
out.txt
的内容
2
0
23
7
7
多出 7 的原因是你的循环执行了太多次。您需要在 std::cin
尝试读取输入后检查。
原样,您只需重复最后一个测试用例。