read número delimitado por espaço do arquivo até o caractere de nova linha
Tenho um arquivo de texto que contém os seguintes dado
A primeira linha é esta:
5 4 3 2 1
A segunda linha é esta:
1 2 3 4 5
Estou tentando ler dados de uma linha por vez, porque meu primeiro objeto de lista vinculada usará os dados da primeira linha e meu segundo objeto de lista vinculada usará dados da segunda linha. O melhor que pude apresentar é a seguinte função:
void polynomial::allocate_poly(std::ifstream& in, const char* file, const char* number)
{
in.open(file);
std::string str;
char b;
int m = 0;
for(int i = 0; !in.eof(); ++i)
{
in >> b;
m = b - '0';
a.insert(m);
}
Existem alguns problemas com essa abordagem. Eu tentei diferentes operadores binários no meu loop for comob == '\n'
e nenhum deles parece acionar quando b é um caractere de nova linh
Alocar também os números do arquivo da seguinte maneir5 5 4 3 2 1 1 2 3 4 5
, parece estar copiando um extra de 5 em algum lugar, não tenho certeza se esse é o bit Eof ou nã
Também tentei usar a função getline, mas por algum motivo, parece copiar apenas o primeiro número inteiro e depois despeja o restante do arquivo. Sei que certamente não o estou usando corretamente, mas todos os exemplos que posso encontrar são para digitar o nome do arquivo comocin.getline
e quero poder passar meu nome de arquivo como um argumento de linha de comando ao executar o program
Minha pergunta é como posso alocar os números na primeira linha até o caractere de nova linha e depois passar oifstream in
variável para outro objeto para alocar a segunda linha? Obrigado pela ajuda