Помогите пожалуйста решить пустяковую проблемку. Есть файл текстовый с цифрами там записанными, не разделёнными пробелами. Нужно считать значения этих цифр в массив — каждая цифра в отдельный элемент массива целых. Подскажите пожалуйста какой нибудь способ, очень нужно, желательно чтоб в DOS тоже работало.
Здравствуйте, PunkRat, Вы писали:
PR>Есть файл текстовый с цифрами там записанными, не разделёнными пробелами. Нужно считать значения этих цифр в массив — каждая цифра в отдельный элемент массива целых.
см. std::basic_istream<>::get(), getc() и т.п.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, PunkRat, Вы писали:
PR>Помогите пожалуйста решить пустяковую проблемку. Есть файл текстовый с цифрами там записанными, не разделёнными пробелами. Нужно считать значения этих цифр в массив — каждая цифра в отдельный элемент массива целых. Подскажите пожалуйста какой нибудь способ, очень нужно, желательно чтоб в DOS тоже работало.
#include < fstream >
#include < vector >
using namespace std;
int main(int argc, char* argv[])
{
ifstream file("filename");
char ch = 0;
vector< int > v;
while (file >> ch) {
v.push_back(ch - '0');
}
return 0;
}
There are 10 types of people in the world, those who don't understand binaries, those who do, and those who understand not only binaries.
Здравствуйте, PunkRat, Вы писали:
PR>Помогите пожалуйста решить пустяковую проблемку. Есть файл текстовый с цифрами там записанными, не разделёнными пробелами. Нужно считать значения этих цифр в массив — каждая цифра в отдельный элемент массива целых. Подскажите пожалуйста какой нибудь способ, очень нужно, желательно чтоб в DOS тоже работало.
int fgetc( FILE *stream );
Пример из MSDN:
/* FGETC.C: This program uses getc to read the first
* 80 input characters (or until the end of input)
* and place them into a string named buffer.
*/#include <stdio.h>
#include <stdlib.h>
void main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
/* Open file to read line from: */if( (stream = fopen( "fgetc.c", "r" )) == NULL )
exit( 0 );
/* Read in first 80 characters and place them in "buffer": */
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
/* Add null to end string */
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}
Здравствуйте, Алексей Владимирович Миронов, Вы писали:
ssi>>интересно, а где нарыть поддерживающий шаблоны компилятор под DOS, чтобы использовать STL?
АВМ>DJGPP? АВМ>Watcom?