Многочисленные проблемы с вашим кодом.Прежде всего, вы #include
имеете несколько устаревших заголовков, включая <stdio.h>
, который должен быть <iostream>
, <string.h>
, который должен быть <string>
, и <stdlib.h>
, который должен быть <cstdlib>
.
Что касается вашего конкретного вопроса, он делает именно то, что вы просили его сделать.Проблема в том, что вы не просили его сделать то, что вы хотели сделать.В вашем коде data += i;
вы говорите «добавьте двоичное значение i
к этому string
», что ваш код покорно делает.Если вы откроете полученный текстовый файл в текстовом редакторе с поддержкой двоичных файлов, то обнаружите, что это вставленные двоичные данные.
Что вы хотели сделать, так это преобразовать целые числа в их строковые представления и добавитьв текстовый файл.Простой способ сделать это в C ++ - это использовать stringstream
следующим образом:
#include <iostream>
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
using namespace std;
int main(){
int i=0;
stringstream ss;
while(i <= 5){
i++;
ss << i << endl;
}
ofstream myfile;
myfile.open ("data.txt");
myfile << ss.str();
myfile.close();
}