Как прочитать, что идет после первой строки в c ifstream?

Я пытаюсь прочитать символы после первой строки (после первой "\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

Так есть какие-нибудь предложения?

-1

Решение

Ок, скомпилировал и попробовал сейчас …

#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);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]