Я сделал это раньше ... Но я забыл. У меня есть файл с некоторыми данными:Стрим и C++ - синтаксический анализ
0,5 0,6 0,7 1,2 1,5
Как я могу читать это в C++? Я сделал это с потоком ... что-то вроде:
float var = 0;
stream >> var;
Я сделал это раньше ... Но я забыл. У меня есть файл с некоторыми данными:Стрим и C++ - синтаксический анализ
0,5 0,6 0,7 1,2 1,5
Как я могу читать это в C++? Я сделал это с потоком ... что-то вроде:
float var = 0;
stream >> var;
Что-то вроде этого?
std::ifstream stream("C:/a.txt");
float var = 0;
while(stream >> var)
{
//Do some processing
}
Что-то вроде этого. Оператор < < обрабатывает пробелы как разделитель.
float array[5] = {0.0f};
for(int i = 0; i < 5; i++)
{
stream >> array[i];
}
BTW Я сделал 5, так как у вас было 5 в вашем примере. (и я предполагаю, что у вас есть настройка потока)
@ Ólafur - Как это будет работать? Возможно, моя синтаксическая память C++ отключается, но, читая ее, вы будете читать из файла в * адрес * 'var', а не в следующую позицию в массиве. Вы должны захотеть поместить '[i]' обратно в конец 'var', так как я изменил для вас ранее - если это не способ использовать массивы, о которых я никогда не видел и не слышал раньше. – warren
Я просто ошибка от меня. –
Вы имеете в виду, как открыть файл и прочитать данные из него?
Это должно выглядеть примерно так:
float var;
ifstream infile("filename");
if(infile.good()){
while(!infile.eof()){
infile >> var;
cout << var << "is the next value\n";
}
}
Для чтения из файлов используйте std :: ifstream.
Следующий фрагмент должен дать вам ключ. Не забудьте включить <fstream>
.
std::ifstream fin("filename.txt");
float value;
while (fin >> value)
{
// Do whatever you want with the value
}
Не пытайтесь проверить fin.eof()
он не скажет вам, если вы собираетесь поднять до конца файла.
В дополнение к ответам ниже, здесь очень хорошая ссылка для C++, вы найдете дополнительную информацию о потоках в разделе 6: http://www.icce.rug.nl/documents/cplusplus/ – RedGlyph