Я пытаюсь прочитать символы после первой строки (после первой "\n"
) в файле, а затем сохранить их в массив, но у меня есть проблема: всякий раз, когда я делаю это, я получаю то, что идет после, но пробелы ('\0'
) опущены и строка возвращается дважды! Я написал следующий код:
я добавил [i + 1] = '\0'
сделать пробелы, но в распечатке это не появляется:
char out[siz];
string line;
char *cv = new char[siz2];
while (!encdec.eof())
{
getline(encdec, line);
strcpy(cv, line.c_str());
while (i < siz - strlen(cv) - 1)
{
encdec >> out[i];
out[i + 1] = '\0';
i + 1;
i++;
}
}
for (int c = 0; c < strlen(out); c++)
{
cout << out[c];
}
Содержимое файла (я просто написал это случайно: D):
someone
someone is the best man on earth and you should respect
вывод всегда такой:
someoneisthebestmanonearthandyoushouldrespectsomeoneisthebestmanonearthandyoushouldrespect
Так есть какие-нибудь предложения?
Ок, скомпилировал и попробовал сейчас …
#include <iostream>
#include <string>
#include <fstream>
using namespace::std;
int main()
{
char out[512];
char cv[512];
string line;
// open the file and get a line
std::ifstream encdec("test.txt", ifstream::in);
getline(encdec, line);
// copy the rest of the file to out
int i=0;
while (!encdec.eof())
{
// note that the eof flag doesn't get set until get() returns it
out[i++] = encdec.get();
}
// remove the eof from the stream
out[i-1] = 0;
cout << out;
encdec.close();
return(0);
}
Других решений пока нет …