Я пытаюсь написать простую программу:
В цикле while он принимает целое число (гарантированно в диапазоне 0, 255), превращает его в соответствующий символ и записывает этот символ в файл до тех пор, пока целое число ввода не станет -1.
Я написал это на C ++, и это хорошо работает. Код:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
char c;
int p;
ofstream myfile;
myfile.open ("a.txt");
while(true){
cin>>p;
if(p == -1)
break;
c = p;
myfile << c;
}
return 0;
}
Я также пытался написать ту же программу на Python 3, код:
import sys
file = open("b.txt", "w")
while True:
p = int(input())
if p == -1:
break
c = chr(p)
file.write(c)
Проблема в том, что на некоторых входах они дают разные выходы, например на входе:
0
3
38
58
41
0
194
209
54
240
59
-1
C ++ дает вывод:
0003 263a 2900 c2d1 36f0 3b
и python выдает:
0003 263a 2900 c382 c391 36c3 b03b
У меня есть контрольные примеры, поэтому я знаю, что вывод C ++ правильный.
В чем может быть проблема?